• Peter Große's avatar
    mac80211: Fix setting TX power on monitor interfaces · 3a3713ec
    Peter Große authored
    Instead of calling ieee80211_recalc_txpower on monitor interfaces
    directly, call it using the virtual monitor interface, if one exists.
    
    In case of a single monitor interface given, reject setting TX power,
    if no virtual monitor interface exists.
    
    That being checked, don't warn in ieee80211_bss_info_change_notify,
    after setting TX power on a monitor interface.
    
    Fixes warning:
    ------------[ cut here ]------------
     WARNING: CPU: 0 PID: 2193 at net/mac80211/driver-ops.h:167
     ieee80211_bss_info_change_notify+0x111/0x190 Modules linked in: uvcvideo
     videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_core
    rndis_host cdc_ether usbnet mii tp_smapi(O) thinkpad_ec(O) ohci_hcd vboxpci(O)
     vboxnetadp(O) vboxnetflt(O) v boxdrv(O) x86_pkg_temp_thermal kvm_intel kvm
     irqbypass iwldvm iwlwifi ehci_pci ehci_hcd tpm_tis tpm_tis_core tpm CPU: 0
     PID: 2193 Comm: iw Tainted: G           O    4.12.12-gentoo #2 task:
     ffff880186fd5cc0 task.stack: ffffc90001b54000 RIP:
     0010:ieee80211_bss_info_change_notify+0x111/0x190 RSP: 0018:ffffc90001b57a10
     EFLAGS: 00010246 RAX: 0000000000000006 RBX: ffff8801052ce840 RCX:
     0000000000000064 RDX: 00000000fffffffc RSI: 0000000000040000 RDI:
     ffff8801052ce840 RBP: ffffc90001b57a38 R08: 0000000000000062 R09:
     0000000000000000 R10: ffff8802144b5000 R11: ffff880049dc4614 R12:
     0000000000040000 R13: 0000000000000064 R14: ffff8802105f0760 R15:
     ffffc90001b57b48 FS:  00007f92644b4580(0000) GS:ffff88021e200000(0000)
     knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 00007f9263c109f0 CR3: 00000001df850000 CR4: 00000000000406f0
     Call Trace:
      ieee80211_recalc_txpower+0x33/0x40
      ieee80211_set_tx_power+0x40/0x180
      nl80211_set_wiphy+0x32e/0x950
    Reported-by: default avatarPeter Große <pegro@friiks.de>
    Signed-off-by: default avatarPeter Große <pegro@friiks.de>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    3a3713ec
driver-ops.h 31.5 KB