diff options
Diffstat (limited to 'drivers/staging/gdm72xx')
-rw-r--r-- | drivers/staging/gdm72xx/gdm_qos.c | 1 | ||||
-rw-r--r-- | drivers/staging/gdm72xx/gdm_sdio.c | 1 | ||||
-rw-r--r-- | drivers/staging/gdm72xx/gdm_usb.c | 24 | ||||
-rw-r--r-- | drivers/staging/gdm72xx/gdm_wimax.c | 1 | ||||
-rw-r--r-- | drivers/staging/gdm72xx/gdm_wimax.h | 1 | ||||
-rw-r--r-- | drivers/staging/gdm72xx/netlink_k.c | 1 | ||||
-rw-r--r-- | drivers/staging/gdm72xx/sdio_boot.c | 1 | ||||
-rw-r--r-- | drivers/staging/gdm72xx/usb_boot.c | 1 |
8 files changed, 15 insertions, 16 deletions
diff --git a/drivers/staging/gdm72xx/gdm_qos.c b/drivers/staging/gdm72xx/gdm_qos.c index 0217680ec545..e7134e28a06d 100644 --- a/drivers/staging/gdm72xx/gdm_qos.c +++ b/drivers/staging/gdm72xx/gdm_qos.c @@ -11,7 +11,6 @@ * GNU General Public License for more details. */ -#include <linux/version.h> #include <linux/etherdevice.h> #include <asm/byteorder.h> diff --git a/drivers/staging/gdm72xx/gdm_sdio.c b/drivers/staging/gdm72xx/gdm_sdio.c index e1a3dd2fc4af..5e19b09e3bff 100644 --- a/drivers/staging/gdm72xx/gdm_sdio.c +++ b/drivers/staging/gdm72xx/gdm_sdio.c @@ -14,7 +14,6 @@ #include <linux/module.h> #include <linux/init.h> #include <linux/kernel.h> -#include <linux/version.h> #include <linux/mmc/core.h> #include <linux/mmc/card.h> diff --git a/drivers/staging/gdm72xx/gdm_usb.c b/drivers/staging/gdm72xx/gdm_usb.c index 1e9dc0d90362..89268c785b25 100644 --- a/drivers/staging/gdm72xx/gdm_usb.c +++ b/drivers/staging/gdm72xx/gdm_usb.c @@ -12,10 +12,10 @@ */ #include <linux/module.h> -#include <linux/version.h> #include <linux/kernel.h> #include <linux/usb.h> #include <asm/byteorder.h> +#include <linux/kthread.h> #include "gdm_usb.h" #include "gdm_wimax.h" @@ -270,20 +270,17 @@ static void release_usb(struct usbwm_dev *udev) } } -static void gdm_usb_send_complete(struct urb *urb) +static void __gdm_usb_send_complete(struct urb *urb) { struct usb_tx *t = urb->context; struct tx_cxt *tx = t->tx_cxt; u8 *pkt = t->buf; u16 cmd_evt; - unsigned long flags; /* Completion by usb_unlink_urb */ if (urb->status == -ECONNRESET) return; - spin_lock_irqsave(&tx->lock, flags); - if (t->callback) t->callback(t->cb_data); @@ -295,7 +292,16 @@ static void gdm_usb_send_complete(struct urb *urb) put_tx_struct(tx, t); else free_tx_struct(t); +} + +static void gdm_usb_send_complete(struct urb *urb) +{ + struct usb_tx *t = urb->context; + struct tx_cxt *tx = t->tx_cxt; + unsigned long flags; + spin_lock_irqsave(&tx->lock, flags); + __gdm_usb_send_complete(urb); spin_unlock_irqrestore(&tx->lock, flags); } @@ -411,7 +417,7 @@ out: send_fail: t->callback = NULL; - gdm_usb_send_complete(t->urb); + __gdm_usb_send_complete(t->urb); spin_unlock_irqrestore(&tx->lock, flags); return ret; } @@ -540,7 +546,7 @@ static void do_pm_control(struct work_struct *work) if (ret) { t->callback = NULL; - gdm_usb_send_complete(t->urb); + __gdm_usb_send_complete(t->urb); } } } @@ -742,7 +748,7 @@ static int k_mode_thread(void *arg) if (ret) { t->callback = NULL; - gdm_usb_send_complete(t->urb); + __gdm_usb_send_complete(t->urb); } } @@ -775,7 +781,7 @@ static struct usb_driver gdm_usb_driver = { static int __init usb_gdm_wimax_init(void) { #ifdef CONFIG_WIMAX_GDM72XX_K_MODE - kernel_thread(k_mode_thread, NULL, CLONE_KERNEL); + kthread_run(k_mode_thread, NULL, "WiMax_thread"); #endif /* CONFIG_WIMAX_GDM72XX_K_MODE */ return usb_register(&gdm_usb_driver); } diff --git a/drivers/staging/gdm72xx/gdm_wimax.c b/drivers/staging/gdm72xx/gdm_wimax.c index f1936b92533b..110bdbc9c899 100644 --- a/drivers/staging/gdm72xx/gdm_wimax.c +++ b/drivers/staging/gdm72xx/gdm_wimax.c @@ -11,7 +11,6 @@ * GNU General Public License for more details. */ -#include <linux/version.h> #include <linux/etherdevice.h> #include <asm/byteorder.h> #include <linux/ip.h> diff --git a/drivers/staging/gdm72xx/gdm_wimax.h b/drivers/staging/gdm72xx/gdm_wimax.h index 023e6492e33d..6ec0ab43e9cc 100644 --- a/drivers/staging/gdm72xx/gdm_wimax.h +++ b/drivers/staging/gdm72xx/gdm_wimax.h @@ -15,7 +15,6 @@ #define __GDM_WIMAX_H__ #include <linux/netdevice.h> -#include <linux/version.h> #include <linux/types.h> #include "wm_ioctl.h" #if defined(CONFIG_WIMAX_GDM72XX_QOS) diff --git a/drivers/staging/gdm72xx/netlink_k.c b/drivers/staging/gdm72xx/netlink_k.c index 51665132c61b..9fa432d74364 100644 --- a/drivers/staging/gdm72xx/netlink_k.c +++ b/drivers/staging/gdm72xx/netlink_k.c @@ -11,7 +11,6 @@ * GNU General Public License for more details. */ -#include <linux/version.h> #include <linux/module.h> #include <linux/etherdevice.h> #include <linux/netlink.h> diff --git a/drivers/staging/gdm72xx/sdio_boot.c b/drivers/staging/gdm72xx/sdio_boot.c index 6ff4dc372522..760efee23d4a 100644 --- a/drivers/staging/gdm72xx/sdio_boot.c +++ b/drivers/staging/gdm72xx/sdio_boot.c @@ -12,7 +12,6 @@ */ #include <linux/module.h> -#include <linux/version.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/mm.h> diff --git a/drivers/staging/gdm72xx/usb_boot.c b/drivers/staging/gdm72xx/usb_boot.c index 5a0e030220dc..c163bcc437ed 100644 --- a/drivers/staging/gdm72xx/usb_boot.c +++ b/drivers/staging/gdm72xx/usb_boot.c @@ -13,7 +13,6 @@ #include <linux/uaccess.h> #include <linux/module.h> -#include <linux/version.h> #include <linux/kernel.h> #include <linux/mm.h> #include <linux/usb.h> |