diff options
| -rw-r--r-- | drivers/staging/panel/panel.c | 23 | ||||
| -rw-r--r-- | drivers/staging/rtl8187se/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/staging/rtl8187se/ieee80211/ieee80211_crypt.c | 19 | ||||
| -rw-r--r-- | drivers/staging/rtl8187se/r8180_core.c | 2 | ||||
| -rw-r--r-- | drivers/staging/winbond/wbusb.c | 20 |
5 files changed, 37 insertions, 28 deletions
diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c index ab69c1bf36a8..c2747bc88c6f 100644 --- a/drivers/staging/panel/panel.c +++ b/drivers/staging/panel/panel.c | |||
| @@ -2164,19 +2164,20 @@ static void __exit panel_cleanup_module(void) | |||
| 2164 | if (scan_timer.function != NULL) | 2164 | if (scan_timer.function != NULL) |
| 2165 | del_timer(&scan_timer); | 2165 | del_timer(&scan_timer); |
| 2166 | 2166 | ||
| 2167 | if (keypad_enabled) | 2167 | if (pprt != NULL) { |
| 2168 | misc_deregister(&keypad_dev); | 2168 | if (keypad_enabled) |
| 2169 | misc_deregister(&keypad_dev); | ||
| 2170 | |||
| 2171 | if (lcd_enabled) { | ||
| 2172 | panel_lcd_print("\x0cLCD driver " PANEL_VERSION | ||
| 2173 | "\nunloaded.\x1b[Lc\x1b[Lb\x1b[L-"); | ||
| 2174 | misc_deregister(&lcd_dev); | ||
| 2175 | } | ||
| 2169 | 2176 | ||
| 2170 | if (lcd_enabled) { | 2177 | /* TODO: free all input signals */ |
| 2171 | panel_lcd_print("\x0cLCD driver " PANEL_VERSION | 2178 | parport_release(pprt); |
| 2172 | "\nunloaded.\x1b[Lc\x1b[Lb\x1b[L-"); | 2179 | parport_unregister_device(pprt); |
| 2173 | misc_deregister(&lcd_dev); | ||
| 2174 | } | 2180 | } |
| 2175 | |||
| 2176 | /* TODO: free all input signals */ | ||
| 2177 | |||
| 2178 | parport_release(pprt); | ||
| 2179 | parport_unregister_device(pprt); | ||
| 2180 | parport_unregister_driver(&panel_driver); | 2181 | parport_unregister_driver(&panel_driver); |
| 2181 | } | 2182 | } |
| 2182 | 2183 | ||
diff --git a/drivers/staging/rtl8187se/Kconfig b/drivers/staging/rtl8187se/Kconfig index 79c225acd1ad..f636296b54bc 100644 --- a/drivers/staging/rtl8187se/Kconfig +++ b/drivers/staging/rtl8187se/Kconfig | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | config RTL8187SE | 1 | config RTL8187SE |
| 2 | tristate "RealTek RTL8187SE Wireless LAN NIC driver" | 2 | tristate "RealTek RTL8187SE Wireless LAN NIC driver" |
| 3 | depends on PCI | 3 | depends on PCI |
| 4 | depends on WIRELESS_EXT && COMPAT_NET_DEV_OPS | ||
| 4 | default N | 5 | default N |
| 5 | ---help--- | 6 | ---help--- |
diff --git a/drivers/staging/rtl8187se/ieee80211/ieee80211_crypt.c b/drivers/staging/rtl8187se/ieee80211/ieee80211_crypt.c index af64cfbe16db..7370296225e1 100644 --- a/drivers/staging/rtl8187se/ieee80211/ieee80211_crypt.c +++ b/drivers/staging/rtl8187se/ieee80211/ieee80211_crypt.c | |||
| @@ -234,20 +234,21 @@ out: | |||
| 234 | void ieee80211_crypto_deinit(void) | 234 | void ieee80211_crypto_deinit(void) |
| 235 | { | 235 | { |
| 236 | struct list_head *ptr, *n; | 236 | struct list_head *ptr, *n; |
| 237 | struct ieee80211_crypto_alg *alg = NULL; | ||
| 237 | 238 | ||
| 238 | if (hcrypt == NULL) | 239 | if (hcrypt == NULL) |
| 239 | return; | 240 | return; |
| 240 | 241 | ||
| 241 | for (ptr = hcrypt->algs.next, n = ptr->next; ptr != &hcrypt->algs; | 242 | list_for_each_safe(ptr, n, &hcrypt->algs) { |
| 242 | ptr = n, n = ptr->next) { | 243 | alg = list_entry(ptr, struct ieee80211_crypto_alg, list); |
| 243 | struct ieee80211_crypto_alg *alg = | 244 | if (alg) { |
| 244 | (struct ieee80211_crypto_alg *) ptr; | 245 | list_del(ptr); |
| 245 | list_del(ptr); | 246 | printk(KERN_DEBUG |
| 246 | printk(KERN_DEBUG "ieee80211_crypt: unregistered algorithm " | 247 | "ieee80211_crypt: unregistered algorithm '%s' (deinit)\n", |
| 247 | "'%s' (deinit)\n", alg->ops->name); | 248 | alg->ops->name); |
| 248 | kfree(alg); | 249 | kfree(alg); |
| 250 | } | ||
| 249 | } | 251 | } |
| 250 | |||
| 251 | kfree(hcrypt); | 252 | kfree(hcrypt); |
| 252 | } | 253 | } |
| 253 | 254 | ||
diff --git a/drivers/staging/rtl8187se/r8180_core.c b/drivers/staging/rtl8187se/r8180_core.c index 94534955e38b..66de5cc8ddf1 100644 --- a/drivers/staging/rtl8187se/r8180_core.c +++ b/drivers/staging/rtl8187se/r8180_core.c | |||
| @@ -6161,10 +6161,10 @@ static void __exit rtl8180_pci_module_exit(void) | |||
| 6161 | { | 6161 | { |
| 6162 | pci_unregister_driver (&rtl8180_pci_driver); | 6162 | pci_unregister_driver (&rtl8180_pci_driver); |
| 6163 | rtl8180_proc_module_remove(); | 6163 | rtl8180_proc_module_remove(); |
| 6164 | ieee80211_crypto_deinit(); | ||
| 6165 | ieee80211_crypto_tkip_exit(); | 6164 | ieee80211_crypto_tkip_exit(); |
| 6166 | ieee80211_crypto_ccmp_exit(); | 6165 | ieee80211_crypto_ccmp_exit(); |
| 6167 | ieee80211_crypto_wep_exit(); | 6166 | ieee80211_crypto_wep_exit(); |
| 6167 | ieee80211_crypto_deinit(); | ||
| 6168 | DMESG("Exiting"); | 6168 | DMESG("Exiting"); |
| 6169 | } | 6169 | } |
| 6170 | 6170 | ||
diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c index b003f9a7e151..f716b2e92b65 100644 --- a/drivers/staging/winbond/wbusb.c +++ b/drivers/staging/winbond/wbusb.c | |||
| @@ -319,16 +319,18 @@ static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id | |||
| 319 | struct usb_device *udev = interface_to_usbdev(intf); | 319 | struct usb_device *udev = interface_to_usbdev(intf); |
| 320 | struct wbsoft_priv *priv; | 320 | struct wbsoft_priv *priv; |
| 321 | struct ieee80211_hw *dev; | 321 | struct ieee80211_hw *dev; |
| 322 | int err; | 322 | int nr, err; |
| 323 | 323 | ||
| 324 | usb_get_dev(udev); | 324 | usb_get_dev(udev); |
| 325 | 325 | ||
| 326 | // 20060630.2 Check the device if it already be opened | 326 | // 20060630.2 Check the device if it already be opened |
| 327 | err = usb_control_msg(udev, usb_rcvctrlpipe( udev, 0 ), | 327 | nr = usb_control_msg(udev, usb_rcvctrlpipe( udev, 0 ), |
| 328 | 0x01, USB_TYPE_VENDOR|USB_RECIP_DEVICE|USB_DIR_IN, | 328 | 0x01, USB_TYPE_VENDOR|USB_RECIP_DEVICE|USB_DIR_IN, |
| 329 | 0x0, 0x400, <mp, 4, HZ*100 ); | 329 | 0x0, 0x400, <mp, 4, HZ*100 ); |
| 330 | if (err) | 330 | if (nr < 0) { |
| 331 | err = nr; | ||
| 331 | goto error; | 332 | goto error; |
| 333 | } | ||
| 332 | 334 | ||
| 333 | ltmp = cpu_to_le32(ltmp); | 335 | ltmp = cpu_to_le32(ltmp); |
| 334 | if (ltmp) { // Is already initialized? | 336 | if (ltmp) { // Is already initialized? |
| @@ -337,8 +339,10 @@ static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id | |||
| 337 | } | 339 | } |
| 338 | 340 | ||
| 339 | dev = ieee80211_alloc_hw(sizeof(*priv), &wbsoft_ops); | 341 | dev = ieee80211_alloc_hw(sizeof(*priv), &wbsoft_ops); |
| 340 | if (!dev) | 342 | if (!dev) { |
| 343 | err = -ENOMEM; | ||
| 341 | goto error; | 344 | goto error; |
| 345 | } | ||
| 342 | 346 | ||
| 343 | priv = dev->priv; | 347 | priv = dev->priv; |
| 344 | 348 | ||
| @@ -369,9 +373,11 @@ static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id | |||
| 369 | } | 373 | } |
| 370 | 374 | ||
| 371 | dev->extra_tx_headroom = 12; /* FIXME */ | 375 | dev->extra_tx_headroom = 12; /* FIXME */ |
| 372 | dev->flags = 0; | 376 | dev->flags = IEEE80211_HW_SIGNAL_UNSPEC; |
| 377 | dev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION); | ||
| 373 | 378 | ||
| 374 | dev->channel_change_time = 1000; | 379 | dev->channel_change_time = 1000; |
| 380 | dev->max_signal = 100; | ||
| 375 | dev->queues = 1; | 381 | dev->queues = 1; |
| 376 | 382 | ||
| 377 | dev->wiphy->bands[IEEE80211_BAND_2GHZ] = &wbsoft_band_2GHz; | 383 | dev->wiphy->bands[IEEE80211_BAND_2GHZ] = &wbsoft_band_2GHz; |
