Re: [PATCH 2.6.25] module: allow ndiswrapper to use GPL-onlysymbols

From: Pavel Roskin
Date: Tue Mar 04 2008 - 00:37:35 EST


Quoting Ingo Molnar <mingo@xxxxxxx>:


* Pavel Roskin <proski@xxxxxxx> wrote:

> btw., what are the technical reasons why ndiswrapper cannot be done
> in userspace, much like the (wildly successful) FUSE concept?

ndiswrapper contains essentially two drivers in one - PCI and USB.
The PCI driver uses DMA, which should be a strong argument for keeping
it in the kernel.

how exactly does it use DMA - how does it allocate the memory it later
on DMAs into, and how does it typically program that DMA target - is
there any control over that in the NDIS protocol - or will NDIS drivers
just write random addresses to the mmio space and then the hardware does
DMA to/from those addresses? [without the NDIS framework having any
knowledge about the encoding of those bits?]

Sorry for delay. I'm really not sure. The maintainer of ndiswrapper is currently offline, and I'm just trying to take care of the basic stuff.

All I can say is NdisMAllocateSharedMemory maps to dma_alloc_coherent(), and there are some references to scatter-gather lists. There is a call to dma_map_single(), which is ultimately called by the Tx function net_dev->hard_start_xmit.

I understand there is some control from NDIS. At least it can request memory available for DMA.

on modern hardware it might even be possible to jail an ndiswrapper
driver to its own pages via the IOMMU.

It's possible that ndiswrapper would support Vista drivers only on x86_64, which should always have IOMMU, if I understand correctly. But it would be nice to have proper support for older XP drivers on x86.

--
Regards,
Pavel Roskin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/