- To: Thomas Huehn <thomas@xxxxxxxxxxxxxxxxxxxxxxx>
- Subject: Re: [PATCH v6] mac80211: Remove control.sta from struct ieee80211_tx_info and restructure tx-path
- From: Arik Nemtsov <arik@xxxxxxxxxx>
- Date: Thu, 26 Jul 2012 19:57:14 +0300
- Cc: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>, linville@xxxxxxxxxxxxx, linux-wireless@xxxxxxxxxxxxxxx, ath9k-devel@xxxxxxxxxxxxxxxx, ath5k-devel@xxxxxxxxxxxxxxxx, ilw@xxxxxxxxxxxxxxx, users@xxxxxxxxxxxxxxxxxxxxxxx, b43-dev@xxxxxxxxxxxxxxxxxxx, brcm80211-dev-list@xxxxxxxxxxxx, chunkeey@xxxxxxxxxxxxxx, buytenh@xxxxxxxxxxxxxx, dsd@xxxxxxxxxx, coelho@xxxxxx, nbd@xxxxxxxxxxx
- In-reply-to: <501170F2.3050300@net.t-labs.tu-berlin.de>
On Thu, Jul 26, 2012 at 7:31 PM, Thomas Huehn
<thomas@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
> Hi Johannes,
>
> Johannes Berg schrieb:
>
>>>
>>> /home/johannes/sys/wireless/drivers/net/wireless/ti/wlcore/tx.c: In
>>> function ‘wl1271_skb_queue_head’:
>>> /home/johannes/sys/wireless/drivers/net/wireless/ti/wlcore/tx.c:622:48:
>>> warning: ‘hlid’ may be used uninitialized in this function
>>> [-Wuninitialized]
>>
>> Those changes make no sense anyway -- you should be able to pass the
>> station pointer through if it previously used info->control.sta, instead
>> of doing an (expensive) lookup.
>
>
> This is the call path
>
> in main.c ... INIT_WORK(&wl->tx_work, wl1271_tx_work);
> jumps to tx.c...wl1271_tx_work(struct work_struct *work)
> calls wl1271_tx_work(struct work_struct *work)
> calls wlcore_tx_work_locked(struct wl1271 *wl)
> calls wl1271_skb_queue_head()
> calls wl12xx_tx_get_hlid()
> calls wl12xx_tx_get_hlid_ap() .... where sta is needed.
>
> But I could not find any point in the call path where I could grab the
> sta pointer and pass it through. I will move the rcu into
> wl12xx_tx_get_hlid_ap(), but I do not see any cheaper way here as using rcu.
I agree with Johannes. The find_sta() in the Tx path is unacceptable.
A relatively simple change here would be to put the sta pointer in the
portion of the struct reserved for rate control during op_tx(). wlcore
doesn't use software rate control anyway.
This would avoid from changing the code too much.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux Kernel]
[Linux Bluetooth]
[Linux Netdev]
[Kernel Newbies]
[Share Photos]
[IDE]
[Security]
[Git]
[Netfilter]
[Bugtraq]
[Photo]
[Yosemite]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Linux ATA RAID]
[Samba]
[Video 4 Linux]
[Device Mapper]
[Linux Resources]
[Free Dating]
[M2M Wireless]