Pontus Fuchs wrote:
Hi,
Since some vendors refuses to release specs or even a binary
Linux-driver for their WLAN cards I desided to try to solve it myself by
making a kernel module that can load Ndis (windows network driver API)
drivers. I'm not trying to implement all of the Ndis API but rather
implement the functions needed to get these unsupported cards working.
Sounds like a plan!
Definetely agree - question though, are you loading these drivers into ring 0 (kernel space)? As far as I know linux only supports ring 0 (kernel) and 3 (userspace). However this would seem to be the perfect place to load the binary modules in ring 1 (or even userspace if that was possible...). I can't say I trust any binary only and/or windows driver to not make a mess of my kernel :) actually the driver may actually be errorless - it's just designed for a different operating system and thus some unexplainable misshaps could easily happen...
While we're at it, loading binary only modules into ring 1 would probably also be a good idea for the NV module et al. Although I have no idea how hard it would be to make ring 1 function (and whether there actually is any point to doing it in ring 1 instead of ring 3 with iopl/ioperm anyway) and how big the performance penalty for non-ring 0 would be...