Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=wipv.git;a=commitdiff;h=d408235085c2179fece8e22910aefb775851258d
commit d408235085c2179fece8e22910aefb775851258d Author: Miklos Vajna <vmik...@frugalware.org> Date: Tue Aug 3 00:50:21 2010 +0200 ndiswrapper-1.56-6-i686 - add kernel-2.6.35.patch diff --git a/source/network/ndiswrapper/FrugalBuild b/source/network/ndiswrapper/FrugalBuild index 910c947..c8eb1f2 100644 --- a/source/network/ndiswrapper/FrugalBuild +++ b/source/network/ndiswrapper/FrugalBuild @@ -4,17 +4,19 @@ pkgname=ndiswrapper pkgver=1.56 -pkgrel=5 +pkgrel=6 pkgdesc="Wrapper for using Windows drivers for some wireless cards" _F_kernelmod_scriptlet=$pkgname.install Finclude kernel-module sourceforge depends=(${depen...@]} 'pciutils' 'wireless_tools') groups=('network') archs=('i686' 'x86_64') -source=(${sour...@]} README.Frugalware ndiswrapper-detect-fix-x86_64.patch) +source=(${sour...@]} README.Frugalware ndiswrapper-detect-fix-x86_64.patch \ + kernel-2.6.35.patch) sha1sums=('c461cf8e2c1f9e1f87e2a5c5e717f13d2fef5364' \ 'c3f24143cb9814326a2c0c3cbc8d58d953bac268' \ - '7e46cc4bb72520d911f256748e8c3936498f001b') + '7e46cc4bb72520d911f256748e8c3936498f001b' \ + '57d2cd99b8a2dc96ec8b136787f947c0426ad992') build() { diff --git a/source/network/ndiswrapper/kernel-2.6.35.patch b/source/network/ndiswrapper/kernel-2.6.35.patch new file mode 100644 index 0000000..1cfdab2 --- /dev/null +++ b/source/network/ndiswrapper/kernel-2.6.35.patch @@ -0,0 +1,98 @@ +diff -uNr ndiswrapper-1.56.old/driver/usb.c ndiswrapper-1.56/driver/usb.c +--- ndiswrapper-1.56.old/driver/usb.c 2010-02-10 18:09:32.000000000 -0800 ++++ ndiswrapper-1.56/driver/usb.c 2010-07-25 02:29:25.442145846 -0700 +@@ -191,9 +191,15 @@ + if (wrap_urb->flags & WRAP_URB_COPY_BUFFER) { + USBTRACE("freeing DMA buffer for URB: %p %p", + urb, urb->transfer_buffer); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 35) + usb_buffer_free(IRP_WRAP_DEVICE(irp)->usb.udev, ++ urb->transfer_buffer_length, ++ urb->transfer_buffer, urb->transfer_dma); ++#else ++ usb_free_coherent(IRP_WRAP_DEVICE(irp)->usb.udev, + urb->transfer_buffer_length, + urb->transfer_buffer, urb->transfer_dma); ++#endif + } + if (urb->setup_packet) + kfree(urb->setup_packet); +@@ -303,9 +309,16 @@ + || PageHighMem(virt_to_page(buf)) + #endif + )) { ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 35) + urb->transfer_buffer = +- usb_buffer_alloc(wd->usb.udev, buf_len, alloc_flags, ++ usb_buffer_alloc(wd->usb.udev, buf_len, alloc_flags, ++ &urb->transfer_dma); ++#else ++ urb->transfer_buffer = ++ usb_alloc_coherent(wd->usb.udev, buf_len, alloc_flags, + &urb->transfer_dma); ++#endif + if (!urb->transfer_buffer) { + WARNING("couldn't allocate dma buf"); + IoAcquireCancelSpinLock(&irp->cancel_irql); +diff -uNr ndiswrapper-1.56.old/driver/wrapndis.c ndiswrapper-1.56/driver/wrapndis.c +--- ndiswrapper-1.56.old/driver/wrapndis.c 2010-02-10 18:09:32.000000000 -0800 ++++ ndiswrapper-1.56/driver/wrapndis.c 2010-07-25 02:06:13.184631757 -0700 +@@ -936,6 +936,10 @@ + EXIT2(return); + } + ++#ifndef netdev_mc_count ++#define netdev_mc_count(net_dev) net_dev->mc_count ++#endif ++ + static void set_multicast_list(struct ndis_device *wnd) + { + struct net_device *net_dev; +@@ -950,20 +954,26 @@ + packet_filter |= NDIS_PACKET_TYPE_PROMISCUOUS | + NDIS_PACKET_TYPE_ALL_LOCAL; + } else if (net_dev->flags & IFF_ALLMULTI || +- net_dev->mc_count > wnd->multicast_size) { ++ netdev_mc_count(net_dev) > wnd->multicast_size) { + packet_filter |= NDIS_PACKET_TYPE_ALL_MULTICAST; + TRACE2("0x%08x", packet_filter); +- } else if (net_dev->mc_count > 0) { ++ } else if (netdev_mc_count(net_dev) > 0) { + int i, size; + char *buf; ++#ifndef netdev_for_each_mc_addr + struct dev_mc_list *mclist; +- size = min(wnd->multicast_size, net_dev->mc_count); +- TRACE2("%d, %d", wnd->multicast_size, net_dev->mc_count); ++#else ++ struct netdev_hw_addr *mclist; ++#endif ++ ++ size = min(wnd->multicast_size, netdev_mc_count(net_dev)); ++ TRACE2("%d, %d", wnd->multicast_size, netdev_mc_count(net_dev)); + buf = kmalloc(size * ETH_ALEN, GFP_KERNEL); + if (!buf) { + WARNING("couldn't allocate memory"); + EXIT2(return); + } ++#ifndef netdev_for_each_mc_addr + mclist = net_dev->mc_list; + for (i = 0; i < size && mclist; mclist = mclist->next) { + if (mclist->dmi_addrlen != ETH_ALEN) +@@ -972,6 +982,15 @@ + TRACE2(MACSTRSEP, MAC2STR(mclist->dmi_addr)); + i++; + } ++#else ++ i = 0; ++ netdev_for_each_mc_addr(mclist, net_dev){ ++ memcpy(buf + i++ * ETH_ALEN, ++ mclist->addr, ETH_ALEN); ++ TRACE2(MACSTRSEP, MAC2STR(mclist->addr)); ++ ++ } ++#endif + res = mp_set(wnd, OID_802_3_MULTICAST_LIST, buf, i * ETH_ALEN); + if (res == NDIS_STATUS_SUCCESS && i > 0) + packet_filter |= NDIS_PACKET_TYPE_MULTICAST; _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git