diff options
Diffstat (limited to 'net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.15.patch')
-rw-r--r-- | net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.15.patch | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.15.patch b/net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.15.patch deleted file mode 100644 index 8e87ece03642..000000000000 --- a/net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.15.patch +++ /dev/null @@ -1,199 +0,0 @@ -From: Seth Forshee <seth.forshee@canonical.com> -Date: Wed, 13 Dec 2017 15:53:31 -0600 -Subject: [PATCH] Build fixes for Linux 4.15 - -Fixes two build issues for 4.15: - - - init_timer() was eliminated in 4.15, and all callers were - converted to using timer_setup(). The callback prototype has - also changed to pass a timer_list argument instead of callback - data, and from_timer() must be used to get to the object in - which the timer is embedded. - - - usb_get_status() was changed to take an additional argument, - and usb_get_std_status() was added as a wrapper for callers to - use as a replacment. Call the wrapper in 4.15 and later. - -LP: #1737749 ---- - driver/ntoskernel.c | 19 ++++++++++++++++++- - driver/usb.c | 10 ++++++++-- - driver/wrapndis.c | 28 ++++++++++++++++++++++++++++ - 3 files changed, 54 insertions(+), 3 deletions(-) - -diff --git a/driver/ntoskernel.c b/driver/ntoskernel.c -index 4fe0dc1..156c688 100644 ---- a/driver/ntoskernel.c -+++ b/driver/ntoskernel.c -@@ -77,7 +77,6 @@ u64 wrap_ticks_to_boot; - #if defined(CONFIG_X86_64) - static struct timer_list shared_data_timer; - struct kuser_shared_data kuser_shared_data; --static void update_user_shared_data_proc(unsigned long data); - #endif - - WIN_SYMBOL_MAP("KeTickCount", &jiffies) -@@ -91,7 +90,11 @@ DEFINE_PER_CPU(struct irql_info, irql_info); - #endif - - #if defined(CONFIG_X86_64) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0) - static void update_user_shared_data_proc(unsigned long data) -+#else -+static void update_user_shared_data_proc(struct timer_list *t) -+#endif - { - /* timer is supposed to be scheduled every 10ms, but bigger - * intervals seem to work (tried up to 50ms) */ -@@ -407,9 +410,15 @@ static void initialize_object(struct dispatcher_header *dh, enum dh_type type, - InitializeListHead(&dh->wait_blocks); - } - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0) - static void timer_proc(unsigned long data) - { - struct wrap_timer *wrap_timer = (struct wrap_timer *)data; -+#else -+static void timer_proc(struct timer_list *t) -+{ -+ struct wrap_timer *wrap_timer = from_timer(wrap_timer, t, timer); -+#endif - struct nt_timer *nt_timer; - struct kdpc *kdpc; - -@@ -452,9 +461,13 @@ void wrap_init_timer(struct nt_timer *nt_timer, enum timer_type type, - return; - } - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0) - init_timer(&wrap_timer->timer); - wrap_timer->timer.data = (unsigned long)wrap_timer; - wrap_timer->timer.function = timer_proc; -+#else -+ timer_setup(&wrap_timer->timer, timer_proc, 0); -+#endif - wrap_timer->nt_timer = nt_timer; - #ifdef TIMER_DEBUG - wrap_timer->wrap_timer_magic = WRAP_TIMER_MAGIC; -@@ -2559,9 +2572,13 @@ int ntoskernel_init(void) - #if defined(CONFIG_X86_64) - memset(&kuser_shared_data, 0, sizeof(kuser_shared_data)); - *((ULONG64 *)&kuser_shared_data.system_time) = ticks_1601(); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0) - init_timer(&shared_data_timer); - shared_data_timer.function = update_user_shared_data_proc; - shared_data_timer.data = 0; -+#else -+ timer_setup(&shared_data_timer, update_user_shared_data_proc, 0); -+#endif - #endif - return 0; - } -diff --git a/driver/usb.c b/driver/usb.c -index 3e7021a..e55c2c6 100644 ---- a/driver/usb.c -+++ b/driver/usb.c -@@ -750,6 +750,12 @@ static USBD_STATUS wrap_set_clear_feature(struct usb_device *udev, - USBEXIT(return NT_URB_STATUS(nt_urb)); - } - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0) -+#define wrap_usb_get_status usb_get_status -+#else -+#define wrap_usb_get_status usb_get_std_status -+#endif -+ - static USBD_STATUS wrap_get_status_request(struct usb_device *udev, - struct irp *irp) - { -@@ -776,8 +782,8 @@ static USBD_STATUS wrap_get_status_request(struct usb_device *udev, - return NT_URB_STATUS(nt_urb); - } - assert(status_req->transfer_buffer_length == sizeof(u16)); -- ret = usb_get_status(udev, type, status_req->index, -- status_req->transfer_buffer); -+ ret = wrap_usb_get_status(udev, type, status_req->index, -+ status_req->transfer_buffer); - if (ret >= 0) { - assert(ret <= status_req->transfer_buffer_length); - status_req->transfer_buffer_length = ret; -diff --git a/driver/wrapndis.c b/driver/wrapndis.c -index 870e4c2..f653440 100644 ---- a/driver/wrapndis.c -+++ b/driver/wrapndis.c -@@ -1093,9 +1093,15 @@ send_assoc_event: - EXIT2(return); - } - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0) - static void iw_stats_timer_proc(unsigned long data) - { - struct ndis_device *wnd = (struct ndis_device *)data; -+#else -+static void iw_stats_timer_proc(struct timer_list *t) -+{ -+ struct ndis_device *wnd = from_timer(wnd, t, iw_stats_timer); -+#endif - - ENTER2("%d", wnd->iw_stats_interval); - if (wnd->iw_stats_interval > 0) { -@@ -1111,8 +1117,12 @@ static void add_iw_stats_timer(struct ndis_device *wnd) - return; - if (wnd->iw_stats_interval < 0) - wnd->iw_stats_interval *= -1; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0) - wnd->iw_stats_timer.data = (unsigned long)wnd; - wnd->iw_stats_timer.function = iw_stats_timer_proc; -+#else -+ timer_setup(&wnd->iw_stats_timer, iw_stats_timer_proc, 0); -+#endif - mod_timer(&wnd->iw_stats_timer, jiffies + wnd->iw_stats_interval); - } - -@@ -1124,9 +1134,15 @@ static void del_iw_stats_timer(struct ndis_device *wnd) - EXIT2(return); - } - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0) - static void hangcheck_proc(unsigned long data) - { - struct ndis_device *wnd = (struct ndis_device *)data; -+#else -+static void hangcheck_proc(struct timer_list *t) -+{ -+ struct ndis_device *wnd = from_timer(wnd, t, hangcheck_timer); -+#endif - - ENTER3("%d", wnd->hangcheck_interval); - if (wnd->hangcheck_interval > 0) { -@@ -1147,8 +1163,12 @@ void hangcheck_add(struct ndis_device *wnd) - wnd->hangcheck_interval = hangcheck_interval * HZ; - if (wnd->hangcheck_interval < 0) - wnd->hangcheck_interval *= -1; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0) - wnd->hangcheck_timer.data = (unsigned long)wnd; - wnd->hangcheck_timer.function = hangcheck_proc; -+#else -+ timer_setup(&wnd->hangcheck_timer, hangcheck_proc, 0); -+#endif - mod_timer(&wnd->hangcheck_timer, jiffies + wnd->hangcheck_interval); - EXIT2(return); - } -@@ -2138,9 +2158,17 @@ static NTSTATUS ndis_add_device(struct driver_object *drv_obj, - wnd->dma_map_count = 0; - wnd->dma_map_addr = NULL; - wnd->nick[0] = 0; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0) - init_timer(&wnd->hangcheck_timer); -+#else -+ timer_setup(&wnd->hangcheck_timer, NULL, 0); -+#endif - wnd->scan_timestamp = 0; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0) - init_timer(&wnd->iw_stats_timer); -+#else -+ timer_setup(&wnd->iw_stats_timer, NULL, 0); -+#endif - wnd->iw_stats_interval = 10 * HZ; - wnd->ndis_pending_work = 0; - memset(&wnd->essid, 0, sizeof(wnd->essid)); |