826 kmem_free(im, sizeof (ieee80211_impl_t));
827
828 if (ic->ic_opt_ie != NULL)
829 ieee80211_free(ic->ic_opt_ie);
830
831 ieee80211_ht_detach(ic);
832 ieee80211_node_detach(ic);
833 ieee80211_crypto_detach(ic);
834
835 mutex_destroy(&ic->ic_genlock);
836 mutex_destroy(&ic->ic_doorlock);
837 }
838
839 static struct modlmisc i_wifi_modlmisc = {
840 &mod_miscops,
841 "IEEE80211 Kernel Module v2.0"
842 };
843
844 static struct modlinkage i_wifi_modlinkage = {
845 MODREV_1,
846 &i_wifi_modlmisc,
847 NULL
848 };
849
850 /*
851 * modlinkage functions
852 */
853 int
854 _init(void)
855 {
856 return (mod_install(&i_wifi_modlinkage));
857 }
858
859 int
860 _fini(void)
861 {
862 return (mod_remove(&i_wifi_modlinkage));
863 }
864
865 int
866 _info(struct modinfo *modinfop)
867 {
|
826 kmem_free(im, sizeof (ieee80211_impl_t));
827
828 if (ic->ic_opt_ie != NULL)
829 ieee80211_free(ic->ic_opt_ie);
830
831 ieee80211_ht_detach(ic);
832 ieee80211_node_detach(ic);
833 ieee80211_crypto_detach(ic);
834
835 mutex_destroy(&ic->ic_genlock);
836 mutex_destroy(&ic->ic_doorlock);
837 }
838
839 static struct modlmisc i_wifi_modlmisc = {
840 &mod_miscops,
841 "IEEE80211 Kernel Module v2.0"
842 };
843
844 static struct modlinkage i_wifi_modlinkage = {
845 MODREV_1,
846 { &i_wifi_modlmisc, NULL }
847 };
848
849 /*
850 * modlinkage functions
851 */
852 int
853 _init(void)
854 {
855 return (mod_install(&i_wifi_modlinkage));
856 }
857
858 int
859 _fini(void)
860 {
861 return (mod_remove(&i_wifi_modlinkage));
862 }
863
864 int
865 _info(struct modinfo *modinfop)
866 {
|