Stanislaw Gruszka
05e7c99136
mac80211: fix conn_mon_timer running after disassociate
Low level driver could pass rx frames to us after disassociate, what
can lead to run conn_mon_timer by ieee80211_sta_rx_notify(). That
is obviously wrong, but nothing happens until we unload modules and
resources are used after free. If kernel debugging is enabled following
warning could be observed:
WARNING: at lib/debugobjects.c:259 debug_print_object+0x65/0x70()
Hardware name: HP xw8600 Workstation
ODEBUG: free active (active state 0) object type: timer_list
Modules linked in: iwlagn(-) iwlcore mac80211 cfg80211 aes_x86_64 aes_generic fuse cpufreq_ondemand acpi_cpufreq freq_table mperf xt_physdev ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 ext3 jbd dm_mirror dm_region_hash dm_log dm_mod uinput hp_wmi sparse_keymap sg wmi arc4 microcode serio_raw ecb tg3 shpchp rfkill ext4 mbcache jbd2 sr_mod cdrom sd_mod crc_t10dif firewire_ohci firewire_core crc_itu_t mptsas mptscsih mptbase scsi_transport_sas ahci libahci pata_acpi ata_generic ata_piix floppy nouveau ttm drm_kms_helper drm i2c_algo_bit i2c_core video [last unloaded: cfg80211]
Pid: 13827, comm: rmmod Tainted: G W 2.6.38-rc4-wl+ #22
Call Trace:
[<ffffffff810649cf>] ? warn_slowpath_common+0x7f/0xc0
[<ffffffff81064ac6>] ? warn_slowpath_fmt+0x46/0x50
[<ffffffff81226fc5>] ? debug_print_object+0x65/0x70
[<ffffffff81227625>] ? debug_check_no_obj_freed+0x125/0x210
[<ffffffff8109ebd7>] ? debug_check_no_locks_freed+0xf7/0x170
[<ffffffff81156092>] ? kfree+0xc2/0x2f0
[<ffffffff813ec5c5>] ? netdev_release+0x45/0x60
[<ffffffff812f1067>] ? device_release+0x27/0xa0
[<ffffffff81216ddd>] ? kobject_release+0x8d/0x1a0
[<ffffffff81216d50>] ? kobject_release+0x0/0x1a0
[<ffffffff812183b7>] ? kref_put+0x37/0x70
[<ffffffff81216c57>] ? kobject_put+0x27/0x60
[<ffffffff813d5d1b>] ? netdev_run_todo+0x1ab/0x270
[<ffffffff813e771e>] ? rtnl_unlock+0xe/0x10
[<ffffffffa0581188>] ? ieee80211_unregister_hw+0x58/0x120 [mac80211]
[<ffffffffa0377ed7>] ? iwl_pci_remove+0xdb/0x22a [iwlagn]
[<ffffffff8123cde2>] ? pci_device_remove+0x52/0x120
[<ffffffff812f5205>] ? __device_release_driver+0x75/0xe0
[<ffffffff812f5348>] ? driver_detach+0xd8/0xe0
[<ffffffff812f4111>] ? bus_remove_driver+0x91/0x100
[<ffffffff812f5b62>] ? driver_unregister+0x62/0xa0
[<ffffffff8123d194>] ? pci_unregister_driver+0x44/0xa0
[<ffffffffa0377df5>] ? iwl_exit+0x15/0x1c [iwlagn]
[<ffffffff810ab492>] ? sys_delete_module+0x1a2/0x270
[<ffffffff81498889>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[<ffffffff8100bf42>] ? system_call_fastpath+0x16/0x1b
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-02-18 16:47:37 -05:00
..
2010-12-08 09:56:28 -08:00
2010-10-25 13:09:44 -07:00
2010-11-28 10:47:19 -08:00
2011-01-07 16:58:04 -08:00
2010-11-10 10:14:33 -08:00
2010-12-20 10:32:03 -08:00
2011-02-16 15:54:11 -03:00
2011-01-06 11:33:05 -08:00
2010-11-22 08:16:09 -08:00
2011-01-04 11:57:25 -08:00
2010-12-26 22:37:05 -08:00
2011-01-09 23:35:35 -08:00
2011-01-06 11:16:54 -08:00
2011-01-07 12:22:44 +01:00
2010-12-14 13:01:14 -08:00
2010-11-22 08:16:10 -08:00
2010-12-24 15:59:06 +01:00
2010-12-17 12:27:22 -08:00
2010-12-08 10:07:24 -08:00
2011-01-09 16:25:03 -08:00
2010-12-20 13:24:14 -08:00
2010-10-21 15:44:13 +02:00
2010-12-26 22:37:05 -08:00
2011-01-05 12:47:25 +01:00
2010-12-08 13:47:38 -08:00
2010-11-22 08:16:14 -08:00
2010-12-08 10:07:24 -08:00
2011-02-18 16:47:37 -05:00
2011-01-09 16:25:03 -08:00
2010-12-19 21:59:35 -08:00
2011-01-09 16:25:03 -08:00
2010-12-16 14:43:14 -08:00
2010-11-22 08:16:14 -08:00
2010-11-22 08:16:15 -08:00
2010-11-15 13:24:06 -05:00
2010-11-22 08:16:15 -08:00
2011-01-05 13:39:17 -08:00
2010-12-17 12:27:22 -08:00
2011-01-07 16:58:04 -08:00
2011-01-01 14:56:18 -08:00
2011-01-05 15:38:53 -08:00
2010-11-22 08:16:16 -08:00
2011-01-04 14:43:01 -05:00
2010-12-08 13:47:38 -08:00
2011-01-09 16:25:03 -08:00
2010-10-28 11:47:52 -07:00
2010-12-16 13:44:24 -08:00
2010-12-16 13:44:24 -08:00
2010-10-15 15:53:27 +02:00
2011-01-07 08:56:33 -08:00