From d23f0015cbbe2cf1fbc3deebe74801b5f3e703cb Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 3 Feb 2010 15:55:52 -0800 Subject: [PATCH] more .32 patches --- .../ath9k-fix-beacon-slot-buffer-leak.patch | 39 ++++++++ ...-values-override-for-2ghz-only-cards.patch | 61 ++++++++++++ ...n-of-callbacks-in-suspend-and-resume.patch | 52 ++++++++++ .../kernel-cred.c-use-kmem_cache_free.patch | 50 ++++++++++ ...-some-debug-and-initialisation-fixes.patch | 66 +++++++++++++ ...device-does-not-remove-its-sysfs-dir.patch | 40 ++++++++ queue-2.6.32/series | 8 ++ ...p-properly-if-firmware-loading-fails.patch | 52 ++++++++++ ...lite-fix-crash-when-using-as-console.patch | 94 +++++++++++++++++++ 9 files changed, 462 insertions(+) create mode 100644 queue-2.6.32/ath9k-fix-beacon-slot-buffer-leak.patch create mode 100644 queue-2.6.32/ath9k-fix-eeprom-ini-values-override-for-2ghz-only-cards.patch create mode 100644 queue-2.6.32/imxfb-correct-location-of-callbacks-in-suspend-and-resume.patch create mode 100644 queue-2.6.32/kernel-cred.c-use-kmem_cache_free.patch create mode 100644 queue-2.6.32/mx3fb-some-debug-and-initialisation-fixes.patch create mode 100644 queue-2.6.32/pktcdvd-removing-device-does-not-remove-its-sysfs-dir.patch create mode 100644 queue-2.6.32/starfire-clean-up-properly-if-firmware-loading-fails.patch create mode 100644 queue-2.6.32/uartlite-fix-crash-when-using-as-console.patch diff --git a/queue-2.6.32/ath9k-fix-beacon-slot-buffer-leak.patch b/queue-2.6.32/ath9k-fix-beacon-slot-buffer-leak.patch new file mode 100644 index 00000000000..107ce701c60 --- /dev/null +++ b/queue-2.6.32/ath9k-fix-beacon-slot-buffer-leak.patch @@ -0,0 +1,39 @@ +From 74401773f80b6d42f7a4c6994ca0cca883b03745 Mon Sep 17 00:00:00 2001 +From: Felix Fietkau +Date: Tue, 19 Jan 2010 20:51:32 +0100 +Subject: ath9k: fix beacon slot/buffer leak + +From: Felix Fietkau + +commit 74401773f80b6d42f7a4c6994ca0cca883b03745 upstream. + +When cleaning up beacon buffers and slots, ath9k currently checks if +sc->ah->opmode is set to a beacon related mode before cleaning up +buffers. +An unfortunate ordering of interface up/down commands can lead to +sc->ah->opmode being set to monitor mode, while there are AP interfaces +present on the same wiphy. +Always cleaning up beacon buffers if present fixes this issue. + +Signed-off-by: Felix Fietkau +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/ath/ath9k/main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/net/wireless/ath/ath9k/main.c ++++ b/drivers/net/wireless/ath/ath9k/main.c +@@ -2285,10 +2285,10 @@ static void ath9k_remove_interface(struc + (sc->sc_ah->opmode == NL80211_IFTYPE_MESH_POINT)) { + ath9k_ps_wakeup(sc); + ath9k_hw_stoptxdma(sc->sc_ah, sc->beacon.beaconq); +- ath_beacon_return(sc, avp); + ath9k_ps_restore(sc); + } + ++ ath_beacon_return(sc, avp); + sc->sc_flags &= ~SC_OP_BEACONS; + + for (i = 0; i < ARRAY_SIZE(sc->beacon.bslot); i++) { diff --git a/queue-2.6.32/ath9k-fix-eeprom-ini-values-override-for-2ghz-only-cards.patch b/queue-2.6.32/ath9k-fix-eeprom-ini-values-override-for-2ghz-only-cards.patch new file mode 100644 index 00000000000..e74260073cc --- /dev/null +++ b/queue-2.6.32/ath9k-fix-eeprom-ini-values-override-for-2ghz-only-cards.patch @@ -0,0 +1,61 @@ +From aa8bc9ef18a2c5b2b97e1f36ee9604cf15743f96 Mon Sep 17 00:00:00 2001 +From: Felix Fietkau +Date: Sat, 23 Jan 2010 20:04:18 +0100 +Subject: ath9k: fix eeprom INI values override for 2GHz-only cards + +From: Felix Fietkau + +commit aa8bc9ef18a2c5b2b97e1f36ee9604cf15743f96 upstream. + +Among other changes, this commit: + + commit 06d0f0663e11cab4ec5f2c143a118d71a12fbbe9 + Author: Sujith + Date: Thu Feb 12 10:06:45 2009 +0530 + + ath9k: Enable Fractional N mode + +changed the hw attach code to fix up initialization values only for +dual band devices, however the commit message did not give a reason as +to why this would be useful or necessary. + +According to tests by Jorge Boncompte, this breaks at least some +2GHz-only cards, so the code should be changed back to the +unconditional INI fixup. + +Signed-off-by: Felix Fietkau +Reported-by: Jorge Boncompte +Tested-by: Pavel Roskin +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/ath/ath9k/hw.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +--- a/drivers/net/wireless/ath/ath9k/hw.c ++++ b/drivers/net/wireless/ath/ath9k/hw.c +@@ -880,12 +880,11 @@ static void ath9k_hw_init_mode_gain_regs + } + } + +-static void ath9k_hw_init_11a_eeprom_fix(struct ath_hw *ah) ++static void ath9k_hw_init_eeprom_fix(struct ath_hw *ah) + { + u32 i, j; + +- if ((ah->hw_version.devid == AR9280_DEVID_PCI) && +- test_bit(ATH9K_MODE_11A, ah->caps.wireless_modes)) { ++ if (ah->hw_version.devid == AR9280_DEVID_PCI) { + + /* EEPROM Fixup */ + for (i = 0; i < ah->iniModes.ia_rows; i++) { +@@ -980,7 +979,7 @@ int ath9k_hw_init(struct ath_hw *ah) + + ath9k_hw_init_mode_gain_regs(ah); + ath9k_hw_fill_cap_info(ah); +- ath9k_hw_init_11a_eeprom_fix(ah); ++ ath9k_hw_init_eeprom_fix(ah); + + r = ath9k_hw_init_macaddr(ah); + if (r) { diff --git a/queue-2.6.32/imxfb-correct-location-of-callbacks-in-suspend-and-resume.patch b/queue-2.6.32/imxfb-correct-location-of-callbacks-in-suspend-and-resume.patch new file mode 100644 index 00000000000..5a80e7aaaa3 --- /dev/null +++ b/queue-2.6.32/imxfb-correct-location-of-callbacks-in-suspend-and-resume.patch @@ -0,0 +1,52 @@ +From 1ec562035ba64e724652cb12b8a770b3906e9bf5 Mon Sep 17 00:00:00 2001 +From: Uwe Kleine-König +Date: Tue, 2 Feb 2010 13:44:10 -0800 +Subject: imxfb: correct location of callbacks in suspend and resume + +From: Uwe Kleine-König + +commit 1ec562035ba64e724652cb12b8a770b3906e9bf5 upstream. + +The probe function passes a pointer to a struct fb_info to +platform_set_drvdata(), so don't interpret the return value of +platform_get_drvdata() as a pointer to struct imxfb_info. + +The original imxfb_info *fbi backlight_power was NULL but in imxfb_suspend +it was 4 resulting in an oops as imxfb_suspend calls +imxfb_disable_controller(fbi) which in turn has + + if (fbi->backlight_power) + fbi->backlight_power(0); + +Signed-off-by: Uwe Kleine-König +Acked-by: Sascha Hauer +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/video/imxfb.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/drivers/video/imxfb.c ++++ b/drivers/video/imxfb.c +@@ -593,7 +593,8 @@ static int imxfb_activate_var(struct fb_ + */ + static int imxfb_suspend(struct platform_device *dev, pm_message_t state) + { +- struct imxfb_info *fbi = platform_get_drvdata(dev); ++ struct fb_info *info = platform_get_drvdata(dev); ++ struct imxfb_info *fbi = info->par; + + pr_debug("%s\n", __func__); + +@@ -603,7 +604,8 @@ static int imxfb_suspend(struct platform + + static int imxfb_resume(struct platform_device *dev) + { +- struct imxfb_info *fbi = platform_get_drvdata(dev); ++ struct fb_info *info = platform_get_drvdata(dev); ++ struct imxfb_info *fbi = info->par; + + pr_debug("%s\n", __func__); + diff --git a/queue-2.6.32/kernel-cred.c-use-kmem_cache_free.patch b/queue-2.6.32/kernel-cred.c-use-kmem_cache_free.patch new file mode 100644 index 00000000000..a219933e8f1 --- /dev/null +++ b/queue-2.6.32/kernel-cred.c-use-kmem_cache_free.patch @@ -0,0 +1,50 @@ +From b8a1d37c5f981cdd2e83c9fd98198832324cd57a Mon Sep 17 00:00:00 2001 +From: Julia Lawall +Date: Wed, 3 Feb 2010 09:31:36 +1100 +Subject: kernel/cred.c: use kmem_cache_free + +From: Julia Lawall + +commit b8a1d37c5f981cdd2e83c9fd98198832324cd57a upstream. + +Free memory allocated using kmem_cache_zalloc using kmem_cache_free rather +than kfree. + +The semantic patch that makes this change is as follows: +(http://coccinelle.lip6.fr/) + +// +@@ +expression x,E,c; +@@ + + x = \(kmem_cache_alloc\|kmem_cache_zalloc\|kmem_cache_alloc_node\)(c,...) + ... when != x = E + when != &x +?-kfree(x) ++kmem_cache_free(c,x) +// + +Signed-off-by: Julia Lawall +Acked-by: David Howells +Cc: James Morris +Cc: Steve Dickson +Signed-off-by: Andrew Morton +Signed-off-by: James Morris +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/cred.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/cred.c ++++ b/kernel/cred.c +@@ -224,7 +224,7 @@ struct cred *cred_alloc_blank(void) + #ifdef CONFIG_KEYS + new->tgcred = kzalloc(sizeof(*new->tgcred), GFP_KERNEL); + if (!new->tgcred) { +- kfree(new); ++ kmem_cache_free(cred_jar, new); + return NULL; + } + atomic_set(&new->tgcred->usage, 1); diff --git a/queue-2.6.32/mx3fb-some-debug-and-initialisation-fixes.patch b/queue-2.6.32/mx3fb-some-debug-and-initialisation-fixes.patch new file mode 100644 index 00000000000..4c91dfa8148 --- /dev/null +++ b/queue-2.6.32/mx3fb-some-debug-and-initialisation-fixes.patch @@ -0,0 +1,66 @@ +From b3cb53721890879d7bde31f5f9eefd4edf41ab64 Mon Sep 17 00:00:00 2001 +From: Alberto Panizzo +Date: Tue, 2 Feb 2010 13:43:59 -0800 +Subject: mx3fb: some debug and initialisation fixes + +From: Alberto Panizzo + +commit b3cb53721890879d7bde31f5f9eefd4edf41ab64 upstream. + +Fix the kernel oops when dev_dbg is called with mx3_fbi->txd == NULL + +Fix the late initialisation of mx3fb->backlight_level. If not, in the +chain of function started by init_fb_chan(), in __blank() call +sdc_set_brightness(mx3fb, mx3fb->backlight_level) that will shut down the +CONTRAST PWM output. + +Signed-off-by: Alberto Panizzo +Acked-by: Guennadi Liakhovetski gmx.de> +Cc: Sascha Hauer +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/video/mx3fb.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +--- a/drivers/video/mx3fb.c ++++ b/drivers/video/mx3fb.c +@@ -324,8 +324,11 @@ static void sdc_enable_channel(struct mx + unsigned long flags; + dma_cookie_t cookie; + +- dev_dbg(mx3fb->dev, "mx3fbi %p, desc %p, sg %p\n", mx3_fbi, +- to_tx_desc(mx3_fbi->txd), to_tx_desc(mx3_fbi->txd)->sg); ++ if (mx3_fbi->txd) ++ dev_dbg(mx3fb->dev, "mx3fbi %p, desc %p, sg %p\n", mx3_fbi, ++ to_tx_desc(mx3_fbi->txd), to_tx_desc(mx3_fbi->txd)->sg); ++ else ++ dev_dbg(mx3fb->dev, "mx3fbi %p, txd = NULL\n", mx3_fbi); + + /* This enables the channel */ + if (mx3_fbi->cookie < 0) { +@@ -646,6 +649,7 @@ static int sdc_set_global_alpha(struct m + + static void sdc_set_brightness(struct mx3fb_data *mx3fb, uint8_t value) + { ++ dev_dbg(mx3fb->dev, "%s: value = %d\n", __func__, value); + /* This might be board-specific */ + mx3fb_write_reg(mx3fb, 0x03000000UL | value << 16, SDC_PWM_CTRL); + return; +@@ -1486,12 +1490,12 @@ static int mx3fb_probe(struct platform_d + goto ersdc0; + } + ++ mx3fb->backlight_level = 255; ++ + ret = init_fb_chan(mx3fb, to_idmac_chan(chan)); + if (ret < 0) + goto eisdc0; + +- mx3fb->backlight_level = 255; +- + return 0; + + eisdc0: diff --git a/queue-2.6.32/pktcdvd-removing-device-does-not-remove-its-sysfs-dir.patch b/queue-2.6.32/pktcdvd-removing-device-does-not-remove-its-sysfs-dir.patch new file mode 100644 index 00000000000..2c3e85b3771 --- /dev/null +++ b/queue-2.6.32/pktcdvd-removing-device-does-not-remove-its-sysfs-dir.patch @@ -0,0 +1,40 @@ +From ca0bf64d99f6e3f6e2fe2585e52a0ac57354beac Mon Sep 17 00:00:00 2001 +From: Thadeu Lima de Souza Cascardo +Date: Tue, 2 Feb 2010 13:44:17 -0800 +Subject: pktcdvd: removing device does not remove its sysfs dir + +From: Thadeu Lima de Souza Cascardo + +commit ca0bf64d99f6e3f6e2fe2585e52a0ac57354beac upstream. + +This is the counterpart to cba767175becadc5c4016cceb7bfdd2c7fe722f4 +("pktcdvd: remove broken dev_t export of class devices"). Device is not +registered using dev_t, so it should not be destroyed using device_destroy +which looks up the device by dev_t. This will fail and adding the device +again will fail with the "duplicate name" error. This is fixed using +device_unregister instead of device_destroy. + +Signed-off-by: Thadeu Lima de Souza Cascardo +Cc: Kay Sievers +Cc: Peter Osterlund +Cc: Al Viro +Cc: Jens Axboe +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/block/pktcdvd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/block/pktcdvd.c ++++ b/drivers/block/pktcdvd.c +@@ -322,7 +322,7 @@ static void pkt_sysfs_dev_remove(struct + pkt_kobj_remove(pd->kobj_stat); + pkt_kobj_remove(pd->kobj_wqueue); + if (class_pktcdvd) +- device_destroy(class_pktcdvd, pd->pkt_dev); ++ device_unregister(pd->dev); + } + + diff --git a/queue-2.6.32/series b/queue-2.6.32/series index bf2ff92c0d0..0627764bebf 100644 --- a/queue-2.6.32/series +++ b/queue-2.6.32/series @@ -63,3 +63,11 @@ be2net-bug-fix-to-support-newer-generation-of-be-asic.patch be2net-fix-memset-arg-ordering.patch mm-flush-dcache-before-writing-into-page-to-avoid-alias.patch mac80211-fix-null-pointer-dereference-when-ftrace-is-enabled.patch +imxfb-correct-location-of-callbacks-in-suspend-and-resume.patch +mx3fb-some-debug-and-initialisation-fixes.patch +starfire-clean-up-properly-if-firmware-loading-fails.patch +kernel-cred.c-use-kmem_cache_free.patch +uartlite-fix-crash-when-using-as-console.patch +pktcdvd-removing-device-does-not-remove-its-sysfs-dir.patch +ath9k-fix-eeprom-ini-values-override-for-2ghz-only-cards.patch +ath9k-fix-beacon-slot-buffer-leak.patch diff --git a/queue-2.6.32/starfire-clean-up-properly-if-firmware-loading-fails.patch b/queue-2.6.32/starfire-clean-up-properly-if-firmware-loading-fails.patch new file mode 100644 index 00000000000..040df0d6f4c --- /dev/null +++ b/queue-2.6.32/starfire-clean-up-properly-if-firmware-loading-fails.patch @@ -0,0 +1,52 @@ +From c928febf4bc703ea542340e5a208e0445d998839 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Tue, 26 Jan 2010 18:27:09 +0000 +Subject: starfire: clean up properly if firmware loading fails + +From: Ben Hutchings + +commit c928febf4bc703ea542340e5a208e0445d998839 upstream. + +netdev_open() will return without cleaning up net device or hardware state +if firmware loading fails. This results in a BUG() on a second attempt to +bring the interface up, reported in +, and probably has even +worse effects if the driver is removed afterwards. + +Call netdev_close() to clean up on failure. + +Addresses http://bugzilla.kernel.org/show_bug.cgi?id=15091 + +Signed-off-by: Ben Hutchings +Reported-by: Michael Moffatt +Tested-by: Michael Moffatt +Cc: "David S. Miller" +Signed-off-by: Andrew Morton +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/starfire.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/drivers/net/starfire.c ++++ b/drivers/net/starfire.c +@@ -1063,7 +1063,7 @@ static int netdev_open(struct net_device + if (retval) { + printk(KERN_ERR "starfire: Failed to load firmware \"%s\"\n", + FIRMWARE_RX); +- return retval; ++ goto out_init; + } + if (fw_rx->size % 4) { + printk(KERN_ERR "starfire: bogus length %zu in \"%s\"\n", +@@ -1108,6 +1108,9 @@ out_tx: + release_firmware(fw_tx); + out_rx: + release_firmware(fw_rx); ++out_init: ++ if (retval) ++ netdev_close(dev); + return retval; + } + diff --git a/queue-2.6.32/uartlite-fix-crash-when-using-as-console.patch b/queue-2.6.32/uartlite-fix-crash-when-using-as-console.patch new file mode 100644 index 00000000000..9903a1d34b9 --- /dev/null +++ b/queue-2.6.32/uartlite-fix-crash-when-using-as-console.patch @@ -0,0 +1,94 @@ +From 03eac7bb882a75e6ee5705288f7ec36ad2e7d0d5 Mon Sep 17 00:00:00 2001 +From: Richard Röjfors +Date: Tue, 2 Feb 2010 13:44:12 -0800 +Subject: uartlite: fix crash when using as console + +From: Richard Röjfors + +commit 03eac7bb882a75e6ee5705288f7ec36ad2e7d0d5 upstream. + +Move the ulite_console_setup to the .devinit section since it might be +called on probe, which is in devinit. Fixes the crash below where the +uartlite hw is probed after the .init section is freed from the kernel. + +uartlite: ttyUL0 at MMIO 0xc8000100 (irq = 30) is a uartlite +BUG: unable to handle kernel NULL pointer dereference at (null) +IP: [] ulite_console_setup+0x6f/0xa8 +*pdpt = 0000000036fb0001 *pde = 0000000000000000 +Oops: 0000 [#1] PREEMPT SMP +last sysfs file: /sys/devices/pci0000:00/0000:00:1f.1/host0/uevent +Modules linked in: puffin(+) serio_raw + +Pid: 151, comm: modprobe Not tainted (2.6.31.5-1.0.b1-b1 #1) POULSBO +EIP: 0060:[] EFLAGS: 00010246 CPU: 0 +EIP is at ulite_console_setup+0x6f/0xa8 +EAX: c16ec824 EBX: c16ec824 ECX: c176719f EDX: 00000000 +ESI: 00000000 EDI: c17b42c4 EBP: f6fd1cf0 ESP: f6fd1cd8 + DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 +Process modprobe (pid: 151, ti=f6fd0000 task=f6fa1020 task.ti=f6fd0000) +Stack: + c1031f51 00000000 00000000 00000246 c182237c f7742000 f6fd1d5c c11fd316 +<0> c16ec85c f77420d4 0000001e 00000000 00000000 c1633e78 4f494d4d 63783020 +<0> 30303038 00303031 f6fd1d3c c10e0786 f6fd1d48 00000000 f6fd1d48 00000000 +Call Trace: + [] ? register_console+0xf6/0x1fc + [] ? uart_add_one_port+0x237/0x2bb + [] ? sysfs_add_one+0x13/0xd3 + [] ? sysfs_do_create_link+0xba/0xfc + [] ? ulite_probe+0x198/0x1eb + [] ? platform_drv_probe+0xc/0xe + [] ? driver_probe_device+0x79/0x105 + [] ? __device_attach+0x28/0x30 + [] ? bus_for_each_drv+0x3d/0x67 + [] ? device_attach+0x44/0x58 + [] ? __device_attach+0x0/0x30 + [] ? bus_probe_device+0x1f/0x34 + [] ? device_add+0x385/0x4c0 + [] ? _write_unlock+0x8/0x1f + [] ? platform_device_add+0xd9/0x11c + [] ? mfd_add_devices+0x165/0x1bc + [] ? puffin_probe+0x2d0/0x390 [puffin] + [] ? pci_match_device+0xa0/0xa7 + [] ? local_pci_probe+0xe/0x10 + [] ? pci_device_probe+0x43/0x66 + [] ? driver_probe_device+0x79/0x105 + [] ? __driver_attach+0x43/0x5f + [] ? bus_for_each_dev+0x3d/0x67 + [] ? driver_attach+0x14/0x16 + [] ? __driver_attach+0x0/0x5f + [] ? bus_add_driver+0xf9/0x220 + [] ? driver_register+0x8b/0xeb + [] ? __pci_register_driver+0x43/0x9f + [] ? __blocking_notifier_call_chain+0x40/0x4c + [] ? puffin_init+0x0/0x48 [puffin] + [] ? puffin_init+0x17/0x48 [puffin] + [] ? do_one_initcall+0x4c/0x131 + [] ? sys_init_module+0xa7/0x1b7 + [] ? syscall_call+0x7/0xb + Code: 6e 74 00 00 00 92 33 00 00 18 00 0e 01 73 79 6e 63 65 2d 72 65 67 69 73 74 72 79 0c 00 49 32 +00 00 14 00 09 01 61 6c 73 61 2d 69 <6e> 66 6f 00 00 00 42 37 00 00 10 00 07 01 6b 69 6c 6c 61 6c 6c +EIP: [] ulite_console_setup+0x6f/0xa8 SS:ESP 0068:f6fd1cd8 +CR2: 0000000000000000 + +Signed-off-by: Richard Röjfors +Acked-by: Peter Korsgaard +Cc: Alan Cox +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/serial/uartlite.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/serial/uartlite.c ++++ b/drivers/serial/uartlite.c +@@ -394,7 +394,7 @@ static void ulite_console_write(struct c + spin_unlock_irqrestore(&port->lock, flags); + } + +-static int __init ulite_console_setup(struct console *co, char *options) ++static int __devinit ulite_console_setup(struct console *co, char *options) + { + struct uart_port *port; + int baud = 9600; -- 2.47.3