Commit b9974dc6bddd41fbdc2583f196a34fbcebd8b089

Authored by Ingo Molnar

Merge branch 'linus' into cpus4096

Showing 28 changed files Side-by-side Diff

Documentation/usb/gadget_serial.txt
... ... @@ -114,11 +114,11 @@
114 114 Then you must load the gadget serial driver. To load it as an
115 115 ACM device (recommended for interoperability), do this:
116 116  
117   - modprobe g_serial use_acm=1
  117 + modprobe g_serial
118 118  
119 119 To load it as a vendor specific bulk in/out device, do this:
120 120  
121   - modprobe g_serial
  121 + modprobe g_serial use_acm=0
122 122  
123 123 This will also automatically load the underlying gadget peripheral
124 124 controller driver. This must be done each time you reboot the gadget
Documentation/usb/proc_usb_info.txt
... ... @@ -49,8 +49,10 @@
49 49  
50 50 These files can be read as binary data. The binary data consists
51 51 of first the device descriptor, then the descriptors for each
52   -configuration of the device. That information is also shown in
53   -text form by the /proc/bus/usb/devices file, described later.
  52 +configuration of the device. Multi-byte fields in the device and
  53 +configuration descriptors, but not other descriptors, are converted
  54 +to host endianness by the kernel. This information is also shown
  55 +in text form by the /proc/bus/usb/devices file, described later.
54 56  
55 57 These files may also be used to write user-level drivers for the USB
56 58 devices. You would open the /proc/bus/usb/BBB/DDD file read/write,
Documentation/usb/usbmon.txt
... ... @@ -34,11 +34,12 @@
34 34 Verify that bus sockets are present.
35 35  
36 36 # ls /sys/kernel/debug/usbmon
37   -0s 0t 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u
  37 +0s 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u
38 38 #
39 39  
40   -Now you can choose to either use the sockets numbered '0' (to capture packets on
41   -all buses), and skip to step #3, or find the bus used by your device with step #2.
  40 +Now you can choose to either use the socket '0u' (to capture packets on all
  41 +buses), and skip to step #3, or find the bus used by your device with step #2.
  42 +This allows to filter away annoying devices that talk continuously.
42 43  
43 44 2. Find which bus connects to the desired device
44 45  
... ... @@ -99,8 +100,9 @@
99 100  
100 101 Here is the list of words, from left to right:
101 102  
102   -- URB Tag. This is used to identify URBs is normally a kernel mode address
103   - of the URB structure in hexadecimal.
  103 +- URB Tag. This is used to identify URBs, and is normally an in-kernel address
  104 + of the URB structure in hexadecimal, but can be a sequence number or any
  105 + other unique string, within reason.
104 106  
105 107 - Timestamp in microseconds, a decimal number. The timestamp's resolution
106 108 depends on available clock, and so it can be much worse than a microsecond
arch/powerpc/kernel/misc_32.S
... ... @@ -486,13 +486,13 @@
486 486 tlbsx 0,r3
487 487 mfspr r4,SPRN_MAS1 /* check valid */
488 488 andis. r3,r4,MAS1_VALID@h
489   - beqlr
  489 + beq 1f
490 490 rlwinm r4,r4,0,1,31
491 491 mtspr SPRN_MAS1,r4
492 492 tlbwe
493 493 msync
494 494 isync
495   - wrtee r10
  495 +1: wrtee r10
496 496 blr
497 497 #endif /* CONFIG_FSL_BOOKE */
498 498  
arch/powerpc/lib/rheap.c
... ... @@ -556,6 +556,7 @@
556 556 be = blk->start + blk->size;
557 557 if (s >= bs && e <= be)
558 558 break;
  559 + blk = NULL;
559 560 }
560 561  
561 562 if (blk == NULL)
drivers/char/xilinx_hwicap/buffer_icap.c
... ... @@ -21,9 +21,6 @@
21 21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 22 * FOR A PARTICULAR PURPOSE.
23 23 *
24   - * Xilinx products are not intended for use in life support appliances,
25   - * devices, or systems. Use in such applications is expressly prohibited.
26   - *
27 24 * (c) Copyright 2003-2008 Xilinx Inc.
28 25 * All rights reserved.
29 26 *
drivers/char/xilinx_hwicap/buffer_icap.h
... ... @@ -21,9 +21,6 @@
21 21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 22 * FOR A PARTICULAR PURPOSE.
23 23 *
24   - * Xilinx products are not intended for use in life support appliances,
25   - * devices, or systems. Use in such applications is expressly prohibited.
26   - *
27 24 * (c) Copyright 2003-2008 Xilinx Inc.
28 25 * All rights reserved.
29 26 *
drivers/char/xilinx_hwicap/fifo_icap.c
... ... @@ -21,9 +21,6 @@
21 21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 22 * FOR A PARTICULAR PURPOSE.
23 23 *
24   - * Xilinx products are not intended for use in life support appliances,
25   - * devices, or systems. Use in such applications is expressly prohibited.
26   - *
27 24 * (c) Copyright 2007-2008 Xilinx Inc.
28 25 * All rights reserved.
29 26 *
drivers/char/xilinx_hwicap/fifo_icap.h
... ... @@ -21,9 +21,6 @@
21 21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 22 * FOR A PARTICULAR PURPOSE.
23 23 *
24   - * Xilinx products are not intended for use in life support appliances,
25   - * devices, or systems. Use in such applications is expressly prohibited.
26   - *
27 24 * (c) Copyright 2007-2008 Xilinx Inc.
28 25 * All rights reserved.
29 26 *
drivers/char/xilinx_hwicap/xilinx_hwicap.c
... ... @@ -21,9 +21,6 @@
21 21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 22 * FOR A PARTICULAR PURPOSE.
23 23 *
24   - * Xilinx products are not intended for use in life support appliances,
25   - * devices, or systems. Use in such applications is expressly prohibited.
26   - *
27 24 * (c) Copyright 2002 Xilinx Inc., Systems Engineering Group
28 25 * (c) Copyright 2004 Xilinx Inc., Systems Engineering Group
29 26 * (c) Copyright 2007-2008 Xilinx Inc.
drivers/char/xilinx_hwicap/xilinx_hwicap.h
... ... @@ -21,9 +21,6 @@
21 21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 22 * FOR A PARTICULAR PURPOSE.
23 23 *
24   - * Xilinx products are not intended for use in life support appliances,
25   - * devices, or systems. Use in such applications is expressly prohibited.
26   - *
27 24 * (c) Copyright 2003-2007 Xilinx Inc.
28 25 * All rights reserved.
29 26 *
drivers/i2c/busses/i2c-cpm.c
... ... @@ -365,6 +365,7 @@
365 365 pmsg = &msgs[tptr];
366 366 if (pmsg->flags & I2C_M_RD)
367 367 ret = wait_event_interruptible_timeout(cpm->i2c_wait,
  368 + (in_be16(&tbdf[tptr].cbd_sc) & BD_SC_NAK) ||
368 369 !(in_be16(&rbdf[rptr].cbd_sc) & BD_SC_EMPTY),
369 370 1 * HZ);
370 371 else
drivers/i2c/busses/i2c-s3c2410.c
... ... @@ -56,6 +56,7 @@
56 56 struct s3c24xx_i2c {
57 57 spinlock_t lock;
58 58 wait_queue_head_t wait;
  59 + unsigned int suspended:1;
59 60  
60 61 struct i2c_msg *msg;
61 62 unsigned int msg_num;
... ... @@ -507,7 +508,7 @@
507 508 unsigned long timeout;
508 509 int ret;
509 510  
510   - if (!(readl(i2c->regs + S3C2410_IICCON) & S3C2410_IICCON_IRQEN))
  511 + if (i2c->suspended)
511 512 return -EIO;
512 513  
513 514 ret = s3c24xx_i2c_set_master(i2c);
514 515  
515 516  
... ... @@ -986,17 +987,26 @@
986 987 }
987 988  
988 989 #ifdef CONFIG_PM
  990 +static int s3c24xx_i2c_suspend_late(struct platform_device *dev,
  991 + pm_message_t msg)
  992 +{
  993 + struct s3c24xx_i2c *i2c = platform_get_drvdata(dev);
  994 + i2c->suspended = 1;
  995 + return 0;
  996 +}
  997 +
989 998 static int s3c24xx_i2c_resume(struct platform_device *dev)
990 999 {
991 1000 struct s3c24xx_i2c *i2c = platform_get_drvdata(dev);
992 1001  
993   - if (i2c != NULL)
994   - s3c24xx_i2c_init(i2c);
  1002 + i2c->suspended = 0;
  1003 + s3c24xx_i2c_init(i2c);
995 1004  
996 1005 return 0;
997 1006 }
998 1007  
999 1008 #else
  1009 +#define s3c24xx_i2c_suspend_late NULL
1000 1010 #define s3c24xx_i2c_resume NULL
1001 1011 #endif
1002 1012  
... ... @@ -1005,6 +1015,7 @@
1005 1015 static struct platform_driver s3c2410_i2c_driver = {
1006 1016 .probe = s3c24xx_i2c_probe,
1007 1017 .remove = s3c24xx_i2c_remove,
  1018 + .suspend_late = s3c24xx_i2c_suspend_late,
1008 1019 .resume = s3c24xx_i2c_resume,
1009 1020 .driver = {
1010 1021 .owner = THIS_MODULE,
... ... @@ -1015,6 +1026,7 @@
1015 1026 static struct platform_driver s3c2440_i2c_driver = {
1016 1027 .probe = s3c24xx_i2c_probe,
1017 1028 .remove = s3c24xx_i2c_remove,
  1029 + .suspend_late = s3c24xx_i2c_suspend_late,
1018 1030 .resume = s3c24xx_i2c_resume,
1019 1031 .driver = {
1020 1032 .owner = THIS_MODULE,
drivers/staging/Kconfig
... ... @@ -22,6 +22,8 @@
22 22 If in doubt, say N here.
23 23  
24 24  
  25 +if STAGING
  26 +
25 27 config STAGING_EXCLUDE_BUILD
26 28 bool "Exclude Staging drivers from being built" if STAGING
27 29 default y
... ... @@ -62,4 +64,5 @@
62 64 source "drivers/staging/poch/Kconfig"
63 65  
64 66 endif # !STAGING_EXCLUDE_BUILD
  67 +endif # STAGING
drivers/usb/class/usbtmc.c
... ... @@ -51,6 +51,7 @@
51 51 { USB_INTERFACE_INFO(USB_CLASS_APP_SPEC, 3, 0), },
52 52 { 0, } /* terminating entry */
53 53 };
  54 +MODULE_DEVICE_TABLE(usb, usbtmc_devices);
54 55  
55 56 /*
56 57 * This structure is the capabilities for the device
drivers/usb/core/driver.c
... ... @@ -279,7 +279,9 @@
279 279 * altsetting means creating new endpoint device entries).
280 280 * When either of these happens, defer the Set-Interface.
281 281 */
282   - if (!error && intf->dev.power.status == DPM_ON)
  282 + if (intf->cur_altsetting->desc.bAlternateSetting == 0)
  283 + ; /* Already in altsetting 0 so skip Set-Interface */
  284 + else if (!error && intf->dev.power.status == DPM_ON)
283 285 usb_set_interface(udev, intf->altsetting[0].
284 286 desc.bInterfaceNumber, 0);
285 287 else
drivers/usb/gadget/f_rndis.c
... ... @@ -651,6 +651,8 @@
651 651 fs_in_desc.bEndpointAddress;
652 652 hs_out_desc.bEndpointAddress =
653 653 fs_out_desc.bEndpointAddress;
  654 + hs_notify_desc.bEndpointAddress =
  655 + fs_notify_desc.bEndpointAddress;
654 656  
655 657 /* copy descriptors, and track endpoint copies */
656 658 f->hs_descriptors = usb_copy_descriptors(eth_hs_function);
... ... @@ -662,6 +664,8 @@
662 664 f->hs_descriptors, &hs_in_desc);
663 665 rndis->hs.out = usb_find_endpoint(eth_hs_function,
664 666 f->hs_descriptors, &hs_out_desc);
  667 + rndis->hs.notify = usb_find_endpoint(eth_hs_function,
  668 + f->hs_descriptors, &hs_notify_desc);
665 669 }
666 670  
667 671 rndis->port.open = rndis_open;
drivers/usb/serial/ftdi_sio.c
... ... @@ -143,6 +143,7 @@
143 143 static struct usb_device_id id_table_combined [] = {
144 144 { USB_DEVICE(FTDI_VID, FTDI_AMC232_PID) },
145 145 { USB_DEVICE(FTDI_VID, FTDI_CANUSB_PID) },
  146 + { USB_DEVICE(FTDI_VID, FTDI_CANDAPTER_PID) },
146 147 { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_0_PID) },
147 148 { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_1_PID) },
148 149 { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_2_PID) },
... ... @@ -166,6 +167,7 @@
166 167 { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) },
167 168 { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_IOBOARD_PID) },
168 169 { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_MINI_IOBOARD_PID) },
  170 + { USB_DEVICE(FTDI_VID, FTDI_SPROG_II) },
169 171 { USB_DEVICE(FTDI_VID, FTDI_XF_632_PID) },
170 172 { USB_DEVICE(FTDI_VID, FTDI_XF_634_PID) },
171 173 { USB_DEVICE(FTDI_VID, FTDI_XF_547_PID) },
drivers/usb/serial/ftdi_sio.h
... ... @@ -40,6 +40,9 @@
40 40 /* AlphaMicro Components AMC-232USB01 device */
41 41 #define FTDI_AMC232_PID 0xFF00 /* Product Id */
42 42  
  43 +/* www.candapter.com Ewert Energy Systems CANdapter device */
  44 +#define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */
  45 +
43 46 /* SCS HF Radio Modems PID's (http://www.scs-ptc.com) */
44 47 /* the VID is the standard ftdi vid (FTDI_VID) */
45 48 #define FTDI_SCS_DEVICE_0_PID 0xD010 /* SCS PTC-IIusb */
... ... @@ -74,6 +77,9 @@
74 77  
75 78 /* OpenDCC (www.opendcc.de) product id */
76 79 #define FTDI_OPENDCC_PID 0xBFD8
  80 +
  81 +/* Sprog II (Andrew Crosland's SprogII DCC interface) */
  82 +#define FTDI_SPROG_II 0xF0C8
77 83  
78 84 /* www.crystalfontz.com devices - thanx for providing free devices for evaluation ! */
79 85 /* they use the ftdi chipset for the USB interface and the vendor id is the same */
drivers/usb/serial/pl2303.c
... ... @@ -91,6 +91,8 @@
91 91 { USB_DEVICE(WS002IN_VENDOR_ID, WS002IN_PRODUCT_ID) },
92 92 { USB_DEVICE(COREGA_VENDOR_ID, COREGA_PRODUCT_ID) },
93 93 { USB_DEVICE(YCCABLE_VENDOR_ID, YCCABLE_PRODUCT_ID) },
  94 + { USB_DEVICE(SUPERIAL_VENDOR_ID, SUPERIAL_PRODUCT_ID) },
  95 + { USB_DEVICE(HP_VENDOR_ID, HP_LD220_PRODUCT_ID) },
94 96 { } /* Terminating entry */
95 97 };
96 98  
drivers/usb/serial/pl2303.h
... ... @@ -110,4 +110,12 @@
110 110 /* Y.C. Cable U.S.A., Inc - USB to RS-232 */
111 111 #define YCCABLE_VENDOR_ID 0x05ad
112 112 #define YCCABLE_PRODUCT_ID 0x0fba
  113 +
  114 +/* "Superial" USB - Serial */
  115 +#define SUPERIAL_VENDOR_ID 0x5372
  116 +#define SUPERIAL_PRODUCT_ID 0x2303
  117 +
  118 +/* Hewlett-Packard LD220-HP POS Pole Display */
  119 +#define HP_VENDOR_ID 0x03f0
  120 +#define HP_LD220_PRODUCT_ID 0x3524
drivers/usb/serial/ti_usb_3410_5052.c
... ... @@ -16,56 +16,6 @@
16 16 * For questions or problems with this driver, contact Texas Instruments
17 17 * technical support, or Al Borchers <alborchers@steinerpoint.com>, or
18 18 * Peter Berger <pberger@brimson.com>.
19   - *
20   - * This driver needs this hotplug script in /etc/hotplug/usb/ti_usb_3410_5052
21   - * or in /etc/hotplug.d/usb/ti_usb_3410_5052.hotplug to set the device
22   - * configuration.
23   - *
24   - * #!/bin/bash
25   - *
26   - * BOOT_CONFIG=1
27   - * ACTIVE_CONFIG=2
28   - *
29   - * if [[ "$ACTION" != "add" ]]
30   - * then
31   - * exit
32   - * fi
33   - *
34   - * CONFIG_PATH=/sys${DEVPATH%/?*}/bConfigurationValue
35   - *
36   - * if [[ 0`cat $CONFIG_PATH` -ne $BOOT_CONFIG ]]
37   - * then
38   - * exit
39   - * fi
40   - *
41   - * PRODUCT=${PRODUCT%/?*} # delete version
42   - * VENDOR_ID=`printf "%d" 0x${PRODUCT%/?*}`
43   - * PRODUCT_ID=`printf "%d" 0x${PRODUCT#*?/}`
44   - *
45   - * PARAM_PATH=/sys/module/ti_usb_3410_5052/parameters
46   - *
47   - * function scan() {
48   - * s=$1
49   - * shift
50   - * for i
51   - * do
52   - * if [[ $s -eq $i ]]
53   - * then
54   - * return 0
55   - * fi
56   - * done
57   - * return 1
58   - * }
59   - *
60   - * IFS=$IFS,
61   - *
62   - * if (scan $VENDOR_ID 1105 `cat $PARAM_PATH/vendor_3410` &&
63   - * scan $PRODUCT_ID 13328 `cat $PARAM_PATH/product_3410`) ||
64   - * (scan $VENDOR_ID 1105 `cat $PARAM_PATH/vendor_5052` &&
65   - * scan $PRODUCT_ID 20562 20818 20570 20575 `cat $PARAM_PATH/product_5052`)
66   - * then
67   - * echo $ACTIVE_CONFIG > $CONFIG_PATH
68   - * fi
69 19 */
70 20  
71 21 #include <linux/kernel.h>
72 22  
... ... @@ -457,9 +407,10 @@
457 407 goto free_tdev;
458 408 }
459 409  
460   - /* the second configuration must be set (in sysfs by hotplug script) */
  410 + /* the second configuration must be set */
461 411 if (dev->actconfig->desc.bConfigurationValue == TI_BOOT_CONFIG) {
462   - status = -ENODEV;
  412 + status = usb_driver_set_configuration(dev, TI_ACTIVE_CONFIG);
  413 + status = status ? status : -ENODEV;
463 414 goto free_tdev;
464 415 }
465 416  
drivers/usb/storage/unusual_devs.h
... ... @@ -167,8 +167,22 @@
167 167 US_SC_DEVICE, US_PR_DEVICE, NULL,
168 168 US_FL_FIX_CAPACITY ),
169 169  
  170 +/* Reported by Ozan Sener <themgzzy@gmail.com> */
  171 +UNUSUAL_DEV( 0x0421, 0x0060, 0x0551, 0x0551,
  172 + "Nokia",
  173 + "3500c",
  174 + US_SC_DEVICE, US_PR_DEVICE, NULL,
  175 + US_FL_FIX_CAPACITY ),
  176 +
  177 +/* Reported by CSECSY Laszlo <boobaa@frugalware.org> */
  178 +UNUSUAL_DEV( 0x0421, 0x0063, 0x0001, 0x0601,
  179 + "Nokia",
  180 + "Nokia 3109c",
  181 + US_SC_DEVICE, US_PR_DEVICE, NULL,
  182 + US_FL_FIX_CAPACITY ),
  183 +
170 184 /* Patch for Nokia 5310 capacity */
171   -UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0591,
  185 +UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0701,
172 186 "Nokia",
173 187 "5310",
174 188 US_SC_DEVICE, US_PR_DEVICE, NULL,
... ... @@ -3983,7 +3983,8 @@
3983 3983  
3984 3984 node->flags = le16_to_cpu(pSMBr->DFSFlags);
3985 3985 if (is_unicode) {
3986   - __le16 *tmp = kmalloc(strlen(searchName)*2, GFP_KERNEL);
  3986 + __le16 *tmp = kmalloc(strlen(searchName)*2 + 2,
  3987 + GFP_KERNEL);
3987 3988 cifsConvertToUCS((__le16 *) tmp, searchName,
3988 3989 PATH_MAX, nls_codepage, remap);
3989 3990 node->path_consumed = hostlen_fromUCS(tmp,
... ... @@ -86,7 +86,8 @@
86 86 #define OCFS2_CLEAR_INCOMPAT_FEATURE(sb,mask) \
87 87 OCFS2_SB(sb)->s_feature_incompat &= ~(mask)
88 88  
89   -#define OCFS2_FEATURE_COMPAT_SUPP OCFS2_FEATURE_COMPAT_BACKUP_SB
  89 +#define OCFS2_FEATURE_COMPAT_SUPP (OCFS2_FEATURE_COMPAT_BACKUP_SB \
  90 + | OCFS2_FEATURE_COMPAT_JBD2_SB)
90 91 #define OCFS2_FEATURE_INCOMPAT_SUPP (OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT \
91 92 | OCFS2_FEATURE_INCOMPAT_SPARSE_ALLOC \
92 93 | OCFS2_FEATURE_INCOMPAT_INLINE_DATA \
... ... @@ -151,6 +152,11 @@
151 152 * has backup superblocks.
152 153 */
153 154 #define OCFS2_FEATURE_COMPAT_BACKUP_SB 0x0001
  155 +
  156 +/*
  157 + * The filesystem will correctly handle journal feature bits.
  158 + */
  159 +#define OCFS2_FEATURE_COMPAT_JBD2_SB 0x0002
154 160  
155 161 /*
156 162 * Unwritten extents support.
... ... @@ -2645,9 +2645,9 @@
2645 2645 return ret;
2646 2646 }
2647 2647  
2648   - i = xs->here - old_xh->xh_entries;
2649   - xs->here = &xs->header->xh_entries[i];
2650 2648 }
  2649 + i = xs->here - old_xh->xh_entries;
  2650 + xs->here = &xs->header->xh_entries[i];
2651 2651 }
2652 2652  
2653 2653 return ret;
include/linux/usb/ch9.h
... ... @@ -158,8 +158,12 @@
158 158 * (rarely) accepted by SET_DESCRIPTOR.
159 159 *
160 160 * Note that all multi-byte values here are encoded in little endian
161   - * byte order "on the wire". But when exposed through Linux-USB APIs,
162   - * they've been converted to cpu byte order.
  161 + * byte order "on the wire". Within the kernel and when exposed
  162 + * through the Linux-USB APIs, they are not converted to cpu byte
  163 + * order; it is the responsibility of the client code to do this.
  164 + * The single exception is when device and configuration descriptors (but
  165 + * not other descriptors) are read from usbfs (i.e. /proc/bus/usb/BBB/DDD);
  166 + * in this case the fields are converted to host endianness by the kernel.
163 167 */
164 168  
165 169 /*
lib/dynamic_printk.c
... ... @@ -135,7 +135,7 @@
135 135 nr_entries--;
136 136 out:
137 137 up(&debug_list_mutex);
138   - return 0;
  138 + return ret;
139 139 }
140 140 EXPORT_SYMBOL_GPL(unregister_dynamic_debug_module);
141 141  
... ... @@ -289,7 +289,7 @@
289 289 dynamic_enabled = DYNAMIC_ENABLED_SOME;
290 290 err = 0;
291 291 printk(KERN_DEBUG
292   - "debugging enabled for module %s",
  292 + "debugging enabled for module %s\n",
293 293 elem->name);
294 294 } else if (!value && (elem->enable == 1)) {
295 295 elem->enable = 0;
... ... @@ -309,7 +309,7 @@
309 309 err = 0;
310 310 printk(KERN_DEBUG
311 311 "debugging disabled for module "
312   - "%s", elem->name);
  312 + "%s\n", elem->name);
313 313 }
314 314 }
315 315 }