From a25d89aa7ffd590bb0d1e4dbaf6c79f579f26b21 Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Sun, 24 Jun 2012 21:02:44 +0200 Subject: [PATCH] BKL use and local kthread implementation is obsolete for 2.6.17+ kernel. Do not try to build obsolete file and use obsolete features. Signed-off-by: Pavel Pisa --- lincan/src/Makefile.omk | 9 +++++++-- lincan/src/usbcan.c | 11 ++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lincan/src/Makefile.omk b/lincan/src/Makefile.omk index e9eecd6..0d0c203 100644 --- a/lincan/src/Makefile.omk +++ b/lincan/src/Makefile.omk @@ -30,7 +30,8 @@ lincan_cards_SOURCES += unican_cl2.c endif ifeq ($(CONFIG_OC_LINCAN_CARD_ipci165),y) -lincan_cards_SOURCES += ipci165_fw.c kthread.c +lincan_cards_SOURCES += ipci165_fw.c +lincan_need_kthread=y endif ifeq ($(CONFIG_OC_LINCAN_CARD_sh7760),y) @@ -38,7 +39,11 @@ lincan_cards_SOURCES += sh7760.c endif ifeq ($(CONFIG_OC_LINCAN_CARD_usbcan),y) -lincan_cards_SOURCES += kthread.c +lincan_need_kthread=y +endif + +ifeq ($(lincan_need_kthread),y) +#lincan_cards_SOURCES += kthread.c endif ifneq ($(filter hms30c7202_can ns_dev_can,$(lincan_cards_SELECTED)),) diff --git a/lincan/src/usbcan.c b/lincan/src/usbcan.c index 70e0a84..54f3dcb 100644 --- a/lincan/src/usbcan.c +++ b/lincan/src/usbcan.c @@ -14,7 +14,10 @@ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) #include #endif -#include +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38)) + #include +#endif +#include static int usbcan_probe(struct usb_interface *interface, const struct usb_device_id *id); static void usbcan_disconnect(struct usb_interface *interface); @@ -1508,12 +1511,16 @@ static void usbcan_disconnect(struct usb_interface *interface) int j; /* prevent more I/O from starting */ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38)) lock_kernel(); +#endif usbdevs = usb_get_intfdata(interface); if (usbdevs==NULL){ CANMSG("USBCAN device seems to be already removed\n"); +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38)) unlock_kernel(); +#endif return; } usb_set_intfdata(interface, NULL); @@ -1526,7 +1533,9 @@ static void usbcan_disconnect(struct usb_interface *interface) mutex_unlock(&usbdevs->devs[j]->io_mutex); } +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38)) unlock_kernel(); +#endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)) kref_put(&usbdevs->candev->refcount,release_device); -- 2.39.2