driver unloading problem in mac os x snowleopard and lion


Hi i want to unload a wifi driver which I am having.. It is not the driver which is for Airport.. My driver creates another interface en2.. That driver contains two classes Controller class and interface class. when I try to unload using sudo kextunload name_of_kext then it is giving as one instance of controller class and one instance of interface class are remaining , I cant unload the kext.. when I give sudo dmesg it will show terminate(kIOServiceSynchronous) timeout.. As terminate is failing free() is not getting called. The driver contains only one kext and both controller and interface classes inherits from IO80211Controller class and IO80211Interface class respectively.. Now how can I unload my driver..

and also after kextunload while doing gdb, when I gave showallworkloopthreads one passive event source of IOCommandGate is remaining.. when i typed

sudo kextutil -m name_of_kext.kext, It is showing as

No kernel file specified ; using running kernel for linking

name_of_kext.kext appears to be loadable (including linkage for on-disk libraries)

When I gave

sudo kextunload -v name_of_kext.kext/

The output is :

(kernel) Can't unload kext; classes have instances:

(kernel) Kext class nameController has 1 instance

(kernel) Kext class nameInterface has 1 instance

Failed to unload - (libkern/kext) kext is in use or retained (cannot unload)

Please could anybody help me in unloading my driver???