All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anilkumar Kolli <akolli@codeaurora.org>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>
Cc: linux-wireless-owner@vger.kernel.org,
	linux-wireless@vger.kernel.org, ath10k@lists.infradead.org
Subject: Re: [RFCv3 1/2] mac80211: implement ieee80211_tx_rate_update to update rate
Date: Mon, 24 Sep 2018 12:00:43 +0530	[thread overview]
Message-ID: <39746e839c1ad5011f2948540140ee0d@codeaurora.org> (raw)
In-Reply-To: <87worfhwgx.fsf@toke.dk>

On 2018-09-21 17:51, Toke Høiland-Jørgensen wrote:
> Anilkumar Kolli <akolli@codeaurora.org> writes:
> 
>> On 2018-09-20 21:40, Toke Høiland-Jørgensen wrote:
>>> Anilkumar Kolli <akolli@codeaurora.org> writes:
>>> 
>>>> Current mac80211 has provision to update tx status through
>>>> ieee80211_tx_status() and ieee80211_tx_status_ext(). But
>>>> drivers like ath10k updates the tx status from the skb except
>>>> txrate, txrate will be updated from a different path, peer stats.
>>>> 
>>>> Using ieee80211_tx_status_ext() in two different paths
>>>>   - (one for the stats, one for the tx rate) will duplicate the 
>>>> stats.
>>>> 
>>>> To avoid this stats duplication, ieee80211_tx_rate_update() is
>>>> implemented.
>>>> 
>>>> Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org>
>>>> ---
>>>> V3:
>>>>   - Added new API in mac80211 to update tx rate(Johannes)
>>>> 
>>>>  include/net/mac80211.h |   14 ++++++++++++++
>>>>  net/mac80211/status.c  |   24 ++++++++++++++++++++++++
>>>>  2 files changed, 38 insertions(+)
>>>> 
>>>> diff --git a/include/net/mac80211.h b/include/net/mac80211.h
>>>> index 8c26d2d36cbe..042186a21770 100644
>>>> --- a/include/net/mac80211.h
>>>> +++ b/include/net/mac80211.h
>>>> @@ -4331,6 +4331,20 @@ void
>>>> ieee80211_sta_set_expected_throughput(struct ieee80211_sta *pubsta,
>>>>  					   u32 thr);
>>>> 
>>>>  /**
>>>> + * ieee80211_tx_rate_update - transmit rate update callback
>>>> + *
>>>> + * This function can be used in drivers that does not have 
>>>> provision
>>>> + * in updating the tx rate in data path.
>>>> + *
>>>> + * @hw: the hardware the frame was transmitted by
>>>> + * @status: tx status information
>>>> + * @pubsta: the station to update the tx rate for.
>>>> + */
>>>> +void ieee80211_tx_rate_update(struct ieee80211_hw *hw,
>>>> +			      struct ieee80211_sta *pubsta,
>>>> +			      struct ieee80211_tx_info *info);
>>>> +
>>>> +/**
>>>>   * ieee80211_tx_status - transmit status callback
>>>>   *
>>>>   * Call this function for all transmitted frames after they have 
>>>> been
>>>> diff --git a/net/mac80211/status.c b/net/mac80211/status.c
>>>> index 9a6d7208bf4f..232297ddaa02 100644
>>>> --- a/net/mac80211/status.c
>>>> +++ b/net/mac80211/status.c
>>>> @@ -988,6 +988,30 @@ void ieee80211_tx_status_ext(struct 
>>>> ieee80211_hw
>>>> *hw,
>>>>  }
>>>>  EXPORT_SYMBOL(ieee80211_tx_status_ext);
>>>> 
>>>> +void ieee80211_tx_rate_update(struct ieee80211_hw *hw,
>>>> +			      struct ieee80211_sta *pubsta,
>>>> +			      struct ieee80211_tx_info *info)
>>>> +{
>>>> +	struct ieee80211_local *local = hw_to_local(hw);
>>>> +	struct ieee80211_supported_band *sband;
>>>> +	struct sta_info *sta;
>>>> +	struct ieee80211_tx_status status;
>>>> +
>>>> +	sband = hw->wiphy->bands[info->band];
>>>> +
>>>> +	if (pubsta) {
>>> 
>>> The function does nothing if pubsta is NULL; wouldn't it make more
>>> sense
>>> to just mandate that it isn't NULL rather than have this check?
>>> 
>> 
>> ATH10K driver always calls this function with a valid STA [not NULL].
> 
> Yeah, so why the check for non-NULL? :)
> 

Agreed we can remove this check since ath10k driver calls 
ieee80211_tx_rate_update()
with a valid STA. This adds a sanity check to avoid NULL dereference on 
pubsta.

I will update the comments on ieee80211_tx_rate_update() and send RFCv4.

Thanks
Anil.

_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

WARNING: multiple messages have this Message-ID (diff)
From: Anilkumar Kolli <akolli@codeaurora.org>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>
Cc: ath10k@lists.infradead.org, linux-wireless@vger.kernel.org,
	linux-wireless-owner@vger.kernel.org
Subject: Re: [RFCv3 1/2] mac80211: implement ieee80211_tx_rate_update to update rate
Date: Mon, 24 Sep 2018 12:00:43 +0530	[thread overview]
Message-ID: <39746e839c1ad5011f2948540140ee0d@codeaurora.org> (raw)
In-Reply-To: <87worfhwgx.fsf@toke.dk>

On 2018-09-21 17:51, Toke Høiland-Jørgensen wrote:
> Anilkumar Kolli <akolli@codeaurora.org> writes:
> 
>> On 2018-09-20 21:40, Toke Høiland-Jørgensen wrote:
>>> Anilkumar Kolli <akolli@codeaurora.org> writes:
>>> 
>>>> Current mac80211 has provision to update tx status through
>>>> ieee80211_tx_status() and ieee80211_tx_status_ext(). But
>>>> drivers like ath10k updates the tx status from the skb except
>>>> txrate, txrate will be updated from a different path, peer stats.
>>>> 
>>>> Using ieee80211_tx_status_ext() in two different paths
>>>>   - (one for the stats, one for the tx rate) will duplicate the 
>>>> stats.
>>>> 
>>>> To avoid this stats duplication, ieee80211_tx_rate_update() is
>>>> implemented.
>>>> 
>>>> Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org>
>>>> ---
>>>> V3:
>>>>   - Added new API in mac80211 to update tx rate(Johannes)
>>>> 
>>>>  include/net/mac80211.h |   14 ++++++++++++++
>>>>  net/mac80211/status.c  |   24 ++++++++++++++++++++++++
>>>>  2 files changed, 38 insertions(+)
>>>> 
>>>> diff --git a/include/net/mac80211.h b/include/net/mac80211.h
>>>> index 8c26d2d36cbe..042186a21770 100644
>>>> --- a/include/net/mac80211.h
>>>> +++ b/include/net/mac80211.h
>>>> @@ -4331,6 +4331,20 @@ void
>>>> ieee80211_sta_set_expected_throughput(struct ieee80211_sta *pubsta,
>>>>  					   u32 thr);
>>>> 
>>>>  /**
>>>> + * ieee80211_tx_rate_update - transmit rate update callback
>>>> + *
>>>> + * This function can be used in drivers that does not have 
>>>> provision
>>>> + * in updating the tx rate in data path.
>>>> + *
>>>> + * @hw: the hardware the frame was transmitted by
>>>> + * @status: tx status information
>>>> + * @pubsta: the station to update the tx rate for.
>>>> + */
>>>> +void ieee80211_tx_rate_update(struct ieee80211_hw *hw,
>>>> +			      struct ieee80211_sta *pubsta,
>>>> +			      struct ieee80211_tx_info *info);
>>>> +
>>>> +/**
>>>>   * ieee80211_tx_status - transmit status callback
>>>>   *
>>>>   * Call this function for all transmitted frames after they have 
>>>> been
>>>> diff --git a/net/mac80211/status.c b/net/mac80211/status.c
>>>> index 9a6d7208bf4f..232297ddaa02 100644
>>>> --- a/net/mac80211/status.c
>>>> +++ b/net/mac80211/status.c
>>>> @@ -988,6 +988,30 @@ void ieee80211_tx_status_ext(struct 
>>>> ieee80211_hw
>>>> *hw,
>>>>  }
>>>>  EXPORT_SYMBOL(ieee80211_tx_status_ext);
>>>> 
>>>> +void ieee80211_tx_rate_update(struct ieee80211_hw *hw,
>>>> +			      struct ieee80211_sta *pubsta,
>>>> +			      struct ieee80211_tx_info *info)
>>>> +{
>>>> +	struct ieee80211_local *local = hw_to_local(hw);
>>>> +	struct ieee80211_supported_band *sband;
>>>> +	struct sta_info *sta;
>>>> +	struct ieee80211_tx_status status;
>>>> +
>>>> +	sband = hw->wiphy->bands[info->band];
>>>> +
>>>> +	if (pubsta) {
>>> 
>>> The function does nothing if pubsta is NULL; wouldn't it make more
>>> sense
>>> to just mandate that it isn't NULL rather than have this check?
>>> 
>> 
>> ATH10K driver always calls this function with a valid STA [not NULL].
> 
> Yeah, so why the check for non-NULL? :)
> 

Agreed we can remove this check since ath10k driver calls 
ieee80211_tx_rate_update()
with a valid STA. This adds a sanity check to avoid NULL dereference on 
pubsta.

I will update the comments on ieee80211_tx_rate_update() and send RFCv4.

Thanks
Anil.

  reply	other threads:[~2018-09-24  6:30 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-20 12:05 [RFCv3 0/2] ath10k: Add support to update tx rate to mac80211 Anilkumar Kolli
2018-09-20 12:05 ` Anilkumar Kolli
2018-09-20 12:05 ` [RFCv3 1/2] mac80211: implement ieee80211_tx_rate_update to update rate Anilkumar Kolli
2018-09-20 12:05   ` Anilkumar Kolli
2018-09-20 16:10   ` Toke Høiland-Jørgensen
2018-09-20 16:10     ` Toke Høiland-Jørgensen
2018-09-21  5:08     ` Anilkumar Kolli
2018-09-21  5:08       ` Anilkumar Kolli
2018-09-21 12:21       ` Toke Høiland-Jørgensen
2018-09-21 12:21         ` Toke Høiland-Jørgensen
2018-09-24  6:30         ` Anilkumar Kolli [this message]
2018-09-24  6:30           ` Anilkumar Kolli
2018-09-20 12:05 ` [RFCv3 2/2] ath10k: report tx rate using ieee80211_tx_rate_update() Anilkumar Kolli
2018-09-20 12:05   ` Anilkumar Kolli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=39746e839c1ad5011f2948540140ee0d@codeaurora.org \
    --to=akolli@codeaurora.org \
    --cc=ath10k@lists.infradead.org \
    --cc=linux-wireless-owner@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=toke@toke.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.