[arch-commits] Commit in ndiswrapper-arch/repos (6 files)
Jan Steffens
heftig at archlinux.org
Sat May 4 13:36:48 UTC 2019
Date: Saturday, May 4, 2019 @ 13:36:48
Author: heftig
Revision: 458860
archrelease: copy trunk to community-staging-x86_64
Added:
ndiswrapper-arch/repos/community-staging-x86_64/
ndiswrapper-arch/repos/community-staging-x86_64/PKGBUILD
(from rev 458852, ndiswrapper-arch/trunk/PKGBUILD)
ndiswrapper-arch/repos/community-staging-x86_64/linux-4.11.patch
(from rev 458853, ndiswrapper-arch/trunk/linux-4.11.patch)
ndiswrapper-arch/repos/community-staging-x86_64/linux-4.13.patch
(from rev 458853, ndiswrapper-arch/trunk/linux-4.13.patch)
ndiswrapper-arch/repos/community-staging-x86_64/linux-4.15.patch
(from rev 458853, ndiswrapper-arch/trunk/linux-4.15.patch)
ndiswrapper-arch/repos/community-staging-x86_64/linux-5.0.patch
(from rev 458854, ndiswrapper-arch/trunk/linux-5.0.patch)
------------------+
PKGBUILD | 43 +++++++++++
linux-4.11.patch | 55 ++++++++++++++
linux-4.13.patch | 27 +++++++
linux-4.15.patch | 199 +++++++++++++++++++++++++++++++++++++++++++++++++++++
linux-5.0.patch | 25 ++++++
5 files changed, 349 insertions(+)
Copied: ndiswrapper-arch/repos/community-staging-x86_64/PKGBUILD (from rev 458852, ndiswrapper-arch/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD (rev 0)
+++ community-staging-x86_64/PKGBUILD 2019-05-04 13:36:48 UTC (rev 458860)
@@ -0,0 +1,43 @@
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+# Contributor: maz-1 <loveayawaka at gmail.com>
+
+pkgname=ndiswrapper-arch
+pkgver=1.61
+_extramodules=extramodules-ARCH
+pkgrel=26
+pkgdesc="Module for NDIS (Windows Network Drivers) drivers supplied by vendors, kernel module for Arch kernel"
+arch=('x86_64')
+url="http://sourceforge.net/projects/ndiswrapper/"
+license=('GPL')
+depends=('linux')
+makedepends=('linux-headers')
+provides=('NDISWRAPPER-MODULE')
+replaces=('ndiswrapper-module')
+source=("ndiswrapper-$pkgver.tar.gz::https://github.com/pgiri/ndiswrapper/archive/v$pkgver.tar.gz"
+ 'linux-4.11.patch' 'linux-4.13.patch' 'linux-4.15.patch' 'linux-5.0.patch')
+sha512sums=('85f550f2952137529e0e9855f4d94b7bbc64cbf8a84a31c1b75a4be09d97478a997e64fa6e1ff4e0d29a97a79fc3d4dab1ebdaa9edb3d627a215f47aa4d52823'
+ '5350308406457658fb31c378d6f3dd2a34c7331aebe5bdc80744bf955f1144e88181441704ccc7532f55d6fbe8d410440fb8838c2955d688dde4b55f74fc6ba5'
+ 'de026a271cbfbefee99bc00a13c50be87294e5e2c5407d23cff6ce2d2a0c853542ce4f7e3e150741c7e8e32466fb1ab7cab266957da5bcca8376fb0f38e94482'
+ '52bd3d2025ffb8a3f6a4a1a1fee1b87d3811f30a210a54aaa7b37838eb256cd766bc1aeda24e4b4f4829992584931ecd97a042794c9b854bd1ebbf452dce2abf'
+ '4918dcebd62ae577401469719f1a8866edd3dc97667aa3de287af1530aa68f50dc2508c883ecd2c9d1fe20f226ecd342b04b08f7a2cace0e531e5f49bbc12f2c')
+
+prepare() {
+ cd ndiswrapper-$pkgver
+ patch --no-backup-if-mismatch -p1 -i "$srcdir"/linux-4.11.patch
+ patch --no-backup-if-mismatch -p1 -i "$srcdir"/linux-4.13.patch
+ patch --no-backup-if-mismatch -p1 -i "$srcdir"/linux-4.15.patch -d ndiswrapper
+ patch --no-backup-if-mismatch -p1 -i "$srcdir"/linux-5.0.patch
+}
+
+build() {
+ _kernver="$(cat /usr/lib/modules/$_extramodules/version)"
+
+ cd ndiswrapper-$pkgver/ndiswrapper
+ make -C driver KVERS_UNAME="$_kernver"
+}
+
+package() {
+ cd ndiswrapper-$pkgver/ndiswrapper/driver
+ install -Dm644 ndiswrapper.ko "$pkgdir"/usr/lib/modules/$_extramodules/ndiswrapper.ko
+ gzip "$pkgdir"/usr/lib/modules/$_extramodules/ndiswrapper.ko
+}
Copied: ndiswrapper-arch/repos/community-staging-x86_64/linux-4.11.patch (from rev 458853, ndiswrapper-arch/trunk/linux-4.11.patch)
===================================================================
--- community-staging-x86_64/linux-4.11.patch (rev 0)
+++ community-staging-x86_64/linux-4.11.patch 2019-05-04 13:36:48 UTC (rev 458860)
@@ -0,0 +1,55 @@
+commit fa2aeeccd5366378ca2eb83c6daee64b511fe792
+Author: Felix Yan <felixonmars at archlinux.org>
+Date: Tue May 16 01:32:56 2017 +0800
+
+ Add support for Linux 4.11+
+
+diff --git a/ndiswrapper/driver/ndis.c b/ndiswrapper/driver/ndis.c
+index c1913a05..2ab4dd21 100644
+--- a/ndiswrapper/driver/ndis.c
++++ b/ndiswrapper/driver/ndis.c
+@@ -2258,7 +2258,9 @@ wstdcall void NdisMIndicateReceivePacket(struct ndis_mp_block *nmb,
+ WARNING("empty packet ignored");
+ continue;
+ }
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+ wnd->net_dev->last_rx = jiffies;
++#endif
+ /* get total number of bytes in packet */
+ NdisGetFirstBufferFromPacketSafe(packet, &buffer, &virt,
+ &length, &total_length,
+@@ -2346,7 +2348,9 @@ wstdcall void EthRxIndicateHandler(struct ndis_mp_block *nmb, void *rx_ctx,
+ ERROR("nmb is NULL");
+ EXIT3(return);
+ }
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+ wnd->net_dev->last_rx = jiffies;
++#endif
+
+ if (look_ahead_size < packet_size) {
+ struct ndis_packet *packet;
+@@ -2461,7 +2465,9 @@ wstdcall void NdisMTransferDataComplete(struct ndis_mp_block *nmb,
+ WARNING("illegal packet");
+ EXIT3(return);
+ }
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+ wnd->net_dev->last_rx = jiffies;
++#endif
+ oob_data = NDIS_PACKET_OOB_DATA(packet);
+ skb_size = sizeof(oob_data->header) + oob_data->look_ahead_size +
+ bytes_txed;
+diff --git a/ndiswrapper/driver/ntoskernel.h b/ndiswrapper/driver/ntoskernel.h
+index 3c4c6ff0..f1c52e51 100644
+--- a/ndiswrapper/driver/ntoskernel.h
++++ b/ndiswrapper/driver/ntoskernel.h
+@@ -296,6 +296,10 @@ static inline void (INIT_WORK)(struct work_struct *work, work_func_t func)
+ #define add_taint(flag, lockdep_ok) add_taint(flag)
+ #endif
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
++#include <linux/sched/signal.h>
++#endif
++
+ #include "winnt_types.h"
+ #include "ndiswrapper.h"
+ #include "pe_linker.h"
Copied: ndiswrapper-arch/repos/community-staging-x86_64/linux-4.13.patch (from rev 458853, ndiswrapper-arch/trunk/linux-4.13.patch)
===================================================================
--- community-staging-x86_64/linux-4.13.patch (rev 0)
+++ community-staging-x86_64/linux-4.13.patch 2019-05-04 13:36:48 UTC (rev 458860)
@@ -0,0 +1,27 @@
+commit eeac7ab831b3097005dadc64dd323f54ade30323
+Author: Felix Yan <felixonmars at archlinux.org>
+Date: Mon Sep 11 12:52:36 2017 +0800
+
+ Add support for linux 4.13+
+
+diff --git a/ndiswrapper/driver/ntoskernel.h b/ndiswrapper/driver/ntoskernel.h
+index f1c52e51..1422bd4d 100644
+--- a/ndiswrapper/driver/ntoskernel.h
++++ b/ndiswrapper/driver/ntoskernel.h
+@@ -119,9 +119,16 @@ static cpumask_t cpumasks[NR_CPUS];
+ */
+ #include <asm/dma-mapping.h>
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 13, 0)
+ #define PCI_DMA_ALLOC_COHERENT(pci_dev,size,dma_handle) \
+ dma_alloc_coherent(&pci_dev->dev,size,dma_handle, \
+ GFP_KERNEL | __GFP_REPEAT)
++#else
++#define PCI_DMA_ALLOC_COHERENT(pci_dev,size,dma_handle) \
++ dma_alloc_coherent(&pci_dev->dev,size,dma_handle, \
++ GFP_KERNEL | __GFP_RETRY_MAYFAIL)
++#endif
++
+ #define PCI_DMA_FREE_COHERENT(pci_dev,size,cpu_addr,dma_handle) \
+ dma_free_coherent(&pci_dev->dev,size,cpu_addr,dma_handle)
+ #define PCI_DMA_MAP_SINGLE(pci_dev,addr,size,direction) \
Copied: ndiswrapper-arch/repos/community-staging-x86_64/linux-4.15.patch (from rev 458853, ndiswrapper-arch/trunk/linux-4.15.patch)
===================================================================
--- community-staging-x86_64/linux-4.15.patch (rev 0)
+++ community-staging-x86_64/linux-4.15.patch 2019-05-04 13:36:48 UTC (rev 458860)
@@ -0,0 +1,199 @@
+From: Seth Forshee <seth.forshee at 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));
Copied: ndiswrapper-arch/repos/community-staging-x86_64/linux-5.0.patch (from rev 458854, ndiswrapper-arch/trunk/linux-5.0.patch)
===================================================================
--- community-staging-x86_64/linux-5.0.patch (rev 0)
+++ community-staging-x86_64/linux-5.0.patch 2019-05-04 13:36:48 UTC (rev 458860)
@@ -0,0 +1,25 @@
+diff -u -r ndiswrapper-1.61/ndiswrapper/driver/ntoskernel.c ndiswrapper-1.61-5.0/ndiswrapper/driver/ntoskernel.c
+--- ndiswrapper-1.61/ndiswrapper/driver/ntoskernel.c 2019-03-04 20:22:58.095332763 +0000
++++ ndiswrapper-1.61-5.0/ndiswrapper/driver/ntoskernel.c 2019-03-04 20:24:48.698777448 +0000
+@@ -2498,7 +2498,7 @@
+
+ int ntoskernel_init(void)
+ {
+- struct timeval now;
++ struct timespec64 now;
+
+ spin_lock_init(&dispatcher_lock);
+ spin_lock_init(&ntoskernel_lock);
+@@ -2518,10 +2518,10 @@
+ INIT_WORK(&ntos_work, ntos_work_worker);
+ wrap_timer_slist.next = NULL;
+
+- do_gettimeofday(&now);
++ ktime_get_real_ts64(&now);
+ wrap_ticks_to_boot = TICKS_1601_TO_1970;
+ wrap_ticks_to_boot += (u64)now.tv_sec * TICKSPERSEC;
+- wrap_ticks_to_boot += now.tv_usec * 10;
++ wrap_ticks_to_boot += now.tv_nsec / 100;
+ wrap_ticks_to_boot -= jiffies * TICKSPERJIFFY;
+ TRACE2("%llu", wrap_ticks_to_boot);
+
More information about the arch-commits
mailing list