2020-05-05 21:14:33

by Malcolm Priestley

[permalink] [raw]
Subject: [PATCH 2/6] staging: vt6656: vnt_get_rtscts_duration_le use ieee80211_rts_duration

use the mac80211 ieee80211_rts_duration for RTS frames.

Signed-off-by: Malcolm Priestley <[email protected]>
---
drivers/staging/vt6656/rxtx.c | 20 +++++---------------
1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/drivers/staging/vt6656/rxtx.c b/drivers/staging/vt6656/rxtx.c
index 6724b213a723..48fe16c27d3f 100644
--- a/drivers/staging/vt6656/rxtx.c
+++ b/drivers/staging/vt6656/rxtx.c
@@ -285,28 +285,18 @@ static __le16 vnt_get_rtscts_duration_le(struct vnt_usb_send_context *context,
u8 dur_type, u8 pkt_type, u16 rate)
{
struct vnt_private *priv = context->priv;
- u32 cts_time = 0, dur_time = 0;
+ u32 dur_time = 0;
u32 frame_length = context->frame_len;
u8 need_ack = context->need_ack;
+ struct ieee80211_tx_info *info = IEEE80211_SKB_CB(context->skb);

switch (dur_type) {
+ /* fall through */
case RTSDUR_BB:
case RTSDUR_BA:
- cts_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
- 14, priv->top_cck_basic_rate);
- dur_time = cts_time + 2 * priv->sifs +
- vnt_get_rsvtime(priv, pkt_type,
- frame_length, rate, need_ack);
- break;
-
case RTSDUR_AA:
- cts_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
- 14, priv->top_ofdm_basic_rate);
- dur_time = cts_time + 2 * priv->sifs +
- vnt_get_rsvtime(priv, pkt_type,
- frame_length, rate, need_ack);
- break;
-
+ return ieee80211_rts_duration(priv->hw, priv->vif,
+ context->frame_len, info);
case CTSDUR_BA:
dur_time = priv->sifs + vnt_get_rsvtime(priv,
pkt_type, frame_length, rate, need_ack);
--
2.25.1


2020-05-13 08:09:14

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH 2/6] staging: vt6656: vnt_get_rtscts_duration_le use ieee80211_rts_duration

On Tue, May 05, 2020 at 10:13:54PM +0100, Malcolm Priestley wrote:
> diff --git a/drivers/staging/vt6656/rxtx.c b/drivers/staging/vt6656/rxtx.c
> index 6724b213a723..48fe16c27d3f 100644
> --- a/drivers/staging/vt6656/rxtx.c
> +++ b/drivers/staging/vt6656/rxtx.c
> @@ -285,28 +285,18 @@ static __le16 vnt_get_rtscts_duration_le(struct vnt_usb_send_context *context,
> u8 dur_type, u8 pkt_type, u16 rate)
> {
> struct vnt_private *priv = context->priv;
> - u32 cts_time = 0, dur_time = 0;
> + u32 dur_time = 0;
> u32 frame_length = context->frame_len;
> u8 need_ack = context->need_ack;
> + struct ieee80211_tx_info *info = IEEE80211_SKB_CB(context->skb);
>
> switch (dur_type) {
> + /* fall through */
> case RTSDUR_BB:
> case RTSDUR_BA:

This fall through annotation shouldn't be necessary. It's not preceded
by a case statement. Also you don't need /* fall through */ for empty
case statements. In other words you only need it for stuff like this:

case FOO:
case BAR:
frob();
frob();
/* fall through */
case BAZ:

regards,
dan carpenter

2020-05-13 08:14:12

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH 2/6] staging: vt6656: vnt_get_rtscts_duration_le use ieee80211_rts_duration

Btw, I don't know if this has already been applied. I'm fine with
applying it as-is. The code doesn't hurt anything and it disappears
later in the series anyways.

I only mentioned this about fall through for future reference.

regards,
dan carpenter