[ofw] Filter Drivers in WinOF

Sean Hefty sean.hefty at intel.com
Mon Apr 19 12:18:49 PDT 2010


>IPoIB registers itself to handle PnP notifications in ipoib_driver.c, function
>ipoib_pnp_notify().  Any PnP notification other than PowerProfileChanged will
>cause the adapter state to become "Removed" and the IPoIB filter driver will
>drop it's connection.  This is in direct contradiction to MS Best Practices for
>filter drivers, which clearly state that filter drivers should *not* interpret
>PnP or Power notifications, but should instead pass these down the driver stack
>to the base driver which has the responsibility for actually interpreting the
>event.  This is similar to the WinVerbs D0 handler, where the WinVerbs *filter*
>driver is attempting to manage a Power notification.

Winverbs registers for power notification in order to obtain the verbs and CM
interfaces.  Those interfaces are not usable until the device has entered the D0
power state.  Querying for the interfaces in, say, device add (which is where
the calls originally were) can result in a system crash.  The only realistic
reason that winverbs could return a failure is it there's a driver mismatch, in
which case, the device is unusable from user space.  This can easily be worked
around by removing winverbs as a filter driver, if only kernel support is
required.

The interface and power state handling issues first need to be fixed in the
lower drivers.

- Sean




More information about the ofw mailing list