dcae9e0203
mac80211: document sleep requirements for channel context ops
...
Channel context driver operations can sleep, so add might_sleep()
and document this.
Signed-off-by: Chaitanya T K <chaitanya.mgit@gmail.com >
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2015-11-03 11:15:48 +01:00
968a76cef3
mac80211: call drv_stop only if driver is started
...
If drv_start() fails during hw_restart, all the running
interfaces are being closed/stopped, which results in
drv_stop() being called, although the driver was never
started successfully.
This might cause drivers to perform operations on uninitialized
memory (as they assume it was initialized on drv_start)
Consider the local->started flag, and call the driver's stop()
op only if drv_start() succeeded before.
Move drv_start() and drv_stop() to driver-ops.c, as they are no
longer simple wrappers.
Signed-off-by: Eliad Peller <eliadx.peller@intel.com >
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com >
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2015-11-03 10:41:12 +01:00
416eb9fc29
mac80211: Deinline drv_get/set/reset_tsf()
...
With this .config: http://busybox.net/~vda/kernel_config_ALLYES_Os ,
after deinlining these functions have sizes and callsite counts
as follows:
drv_get_tsf: 634 bytes, 6 calls
drv_set_tsf: 626 bytes, 2 calls
drv_reset_tsf: 617 bytes, 2 calls
Total size reduction is about 4.2 kbytes.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
CC: Johannes Berg <johannes.berg@intel.com >
CC: John Linville <linville@tuxdriver.com >
CC: Michal Kazior <michal.kazior@tieto.com >
CC: linux-wireless@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2015-09-29 15:56:49 +02:00
6db9683897
mac80211: Deinline drv_ampdu_action()
...
With this .config: http://busybox.net/~vda/kernel_config_ALLYES_Os ,
after deinlining the function size is 755 bytes and there are
6 callsites.
Total size reduction is about 3.3 kbytes.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
CC: Johannes Berg <johannes.berg@intel.com >
CC: John Linville <linville@tuxdriver.com >
CC: Michal Kazior <michal.kazior@tieto.com >
CC: linux-wireless@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2015-09-29 15:56:49 +02:00
42677ed33a
mac80211: Deinline drv_switch_vif_chanctx()
...
With this .config: http://busybox.net/~vda/kernel_config_ALLYES_Os ,
after deinlining the function size is 821 bytes and there are
2 callsites, reducing code size by about 800 bytes.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
CC: Johannes Berg <johannes.berg@intel.com >
CC: John Linville <linville@tuxdriver.com >
CC: Michal Kazior <michal.kazior@tieto.com >
CC: linux-wireless@vger.kernel.org
CC: linux-kernel@vger.kernel.org
[adjust code-style a bit]
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2015-09-29 15:56:48 +02:00
9aae296a62
mac80211: Deinline drv_add/remove/change_interface()
...
With this .config: http://busybox.net/~vda/kernel_config_ALLYES_Os ,
after deinlining these functions have sizes and callsite counts
as follows:
drv_add_interface: 638 bytes, 5 calls
drv_remove_interface: 611 bytes, 6 calls
drv_change_interface: 658 bytes, 1 call
Total size reduction is about 9 kbytes.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
CC: John Linville <linville@tuxdriver.com >
CC: Michal Kazior <michal.kazior@tieto.com >
CC: Johannes Berg <johannes.berg@intel.com >
CC: linux-wireless@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2015-09-29 15:56:46 +02:00
4fbd572c29
mac80211: Deinline drv_sta_rc_update()
...
With this .config: http://busybox.net/~vda/kernel_config_ALLYES_Os ,
after deinlining the function size is 706 bytes and there are
2 callsites, reducing code size by about 700 bytes.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
CC: John Linville <linville@tuxdriver.com >
CC: Michal Kazior <michal.kazior@tieto.com >
CC: Johannes Berg <johannes.berg@intel.com >
CC: linux-wireless@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2015-09-29 15:56:45 +02:00
b23dcd4aca
mac80211: Deinline drv_conf_tx()
...
With this .config: http://busybox.net/~vda/kernel_config_ALLYES_Os ,
after deinlining the function size is 785 bytes and there are
7 callsites.
Total size reduction is about 3.5 kbytes.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
CC: John Linville <linville@tuxdriver.com >
CC: Michal Kazior <michal.kazior@tieto.com >
CC: Johannes Berg <johannes.berg@intel.com >
CC: linux-wireless@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2015-09-29 15:56:45 +02:00
727da60be9
mac80211: deinline drv_sta_state
...
With this .config: http://busybox.net/~vda/kernel_config ,
after deinlining the function size is 3132 bytes and there are
7 callsites.
Total size reduction: about 20 kbytes.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
CC: John Linville <linville@tuxdriver.com >
CC: Michal Kazior <michal.kazior@tieto.com >
Cc: Johannes Berg <johannes.berg@intel.com >
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com >
2015-07-17 15:48:50 +02:00