2008-06-06 17:59:45

by Harvey Harrison

[permalink] [raw]
Subject: [PATCH 2/7] mac80211: replace ieee80211_get_morefrag with ieee80211_has_morefrags

Signed-off-by: Harvey Harrison <[email protected]>
---
drivers/net/wireless/iwlwifi/iwl-tx.c | 4 ++--
drivers/net/wireless/iwlwifi/iwl3945-base.c | 4 ++--
drivers/net/wireless/rt2x00/rt2x00queue.c | 2 +-
drivers/net/wireless/rtl8187_dev.c | 2 +-
include/linux/ieee80211.h | 13 -------------
5 files changed, 6 insertions(+), 19 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
index cfe6f4b..b22dc54 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -595,7 +595,7 @@ static void iwl_tx_cmd_build_basic(struct iwl_priv *priv,


tx_cmd->sta_id = std_id;
- if (ieee80211_get_morefrag(hdr))
+ if (ieee80211_has_morefrags(hdr->frame_control))
tx_flags |= TX_CMD_FLG_MORE_FRAG_MSK;

if (ieee80211_is_qos_data(fc)) {
@@ -952,7 +952,7 @@ int iwl_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
tx_cmd->dram_lsb_ptr = cpu_to_le32(scratch_phys);
tx_cmd->dram_msb_ptr = iwl_get_dma_hi_address(scratch_phys);

- if (!ieee80211_get_morefrag(hdr)) {
+ if (!ieee80211_has_morefrags(hdr->frame_control)) {
txq->need_update = 1;
if (qc)
priv->stations[sta_id].tid[tid].seq_number = seq_number;
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 72279e0..77a0113 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -2448,7 +2448,7 @@ static void iwl3945_build_tx_cmd_basic(struct iwl3945_priv *priv,
}

cmd->cmd.tx.sta_id = std_id;
- if (ieee80211_get_morefrag(hdr))
+ if (ieee80211_has_morefrags(hdr->frame_control))
tx_flags |= TX_CMD_FLG_MORE_FRAG_MSK;

if (ieee80211_is_qos_data(fc)) {
@@ -2732,7 +2732,7 @@ static int iwl3945_tx_skb(struct iwl3945_priv *priv, struct sk_buff *skb)
out_cmd->cmd.tx.tx_flags &= ~TX_CMD_FLG_ANT_A_MSK;
out_cmd->cmd.tx.tx_flags &= ~TX_CMD_FLG_ANT_B_MSK;

- if (!ieee80211_get_morefrag(hdr)) {
+ if (!ieee80211_has_morefrags(hdr->frame_control)) {
txq->need_update = 1;
if (qc) {
priv->stations[sta_id].tid[tid].seq_number = seq_number;
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
index e69ef4b..95ed617 100644
--- a/drivers/net/wireless/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
@@ -91,7 +91,7 @@ void rt2x00queue_create_tx_descriptor(struct queue_entry *entry,
/*
* Check if more fragments are pending
*/
- if (ieee80211_get_morefrag(hdr)) {
+ if (ieee80211_has_morefrags(hdr->frame_control)) {
__set_bit(ENTRY_TXD_BURST, &txdesc->flags);
__set_bit(ENTRY_TXD_MORE_FRAG, &txdesc->flags);
}
diff --git a/drivers/net/wireless/rtl8187_dev.c b/drivers/net/wireless/rtl8187_dev.c
index 0078c7e..c553b82 100644
--- a/drivers/net/wireless/rtl8187_dev.c
+++ b/drivers/net/wireless/rtl8187_dev.c
@@ -181,7 +181,7 @@ static int rtl8187_tx(struct ieee80211_hw *dev, struct sk_buff *skb)
flags |= RTL8187_TX_FLAG_NO_ENCRYPT;

flags |= ieee80211_get_tx_rate(dev, info)->hw_value << 24;
- if (ieee80211_get_morefrag((struct ieee80211_hdr *)skb->data))
+ if (ieee80211_has_morefrags(((struct ieee80211_hdr *)skb->data)->frame_control)
flags |= RTL8187_TX_FLAG_MORE_FRAG;
if (info->flags & IEEE80211_TX_CTL_USE_RTS_CTS) {
flags |= RTL8187_TX_FLAG_RTS;
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 5773c62..9496bea 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -651,17 +651,4 @@ static inline u8 *ieee80211_get_DA(struct ieee80211_hdr *hdr)
return hdr->addr1;
}

-/**
- * ieee80211_get_morefrag - determine whether the MOREFRAGS bit is set
- *
- * This function determines whether the "more fragments" bit is set
- * in the frame.
- *
- * @hdr: the frame
- */
-static inline int ieee80211_get_morefrag(struct ieee80211_hdr *hdr)
-{
- return ieee80211_has_morefrags(hdr->frame_control);
-}
-
#endif /* IEEE80211_H */
--
1.5.6.rc1.257.gba91d




2008-06-09 17:25:19

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH 2/7] mac80211: replace ieee80211_get_morefrag with ieee80211_has_morefrags

On Mon, 2008-06-09 at 09:29 -0700, Harvey Harrison wrote:
> On Mon, 2008-06-09 at 09:38 +0200, Johannes Berg wrote:
> > > - if (ieee80211_get_morefrag(hdr))
> > > + if (ieee80211_has_morefrags(hdr->frame_control))
> >
> > looks fine to me, though I wonder if we should have
> >
> > ieee80211_has_morefrags(struct 80211hdr)
> > and
> > __ieee80211_has_morefrags(__le16 fc)
> >
> > or something with variants of the functions that do the ->frame_control?
>
> I considered that, but thought it was a small benefit for doubling the
> number of helpers.
>
> I chose the __le16 variant as there is some driver code that checks these
> values in driver-specific structures, so I just left it up to the caller
> to dereference whatever structure the frame control is held in.
>
> But if both sets are wanted, I would suggest:
>
> ieee80211_fc_has_morefrags(__le16 fc);
>
> ieee80211_has_morefrags(struct ieee80211 *hdr)
> {
> return ieee80211_fc_has_morefrags(hdr->frame_control);
> }
>
> Do you think I should add the struct helper(s)?

It looks like you'd be using them in many places, so don't you think it
would be helpful? I don't really care too much.

johannes


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part

2008-06-09 08:58:21

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH 2/7] mac80211: replace ieee80211_get_morefrag with ieee80211_has_morefrags


> - if (ieee80211_get_morefrag(hdr))
> + if (ieee80211_has_morefrags(hdr->frame_control))

looks fine to me, though I wonder if we should have

ieee80211_has_morefrags(struct 80211hdr)
and
__ieee80211_has_morefrags(__le16 fc)

or something with variants of the functions that do the ->frame_control?

johannes


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part

2008-06-09 16:29:31

by Harvey Harrison

[permalink] [raw]
Subject: Re: [PATCH 2/7] mac80211: replace ieee80211_get_morefrag with ieee80211_has_morefrags

On Mon, 2008-06-09 at 09:38 +0200, Johannes Berg wrote:
> > - if (ieee80211_get_morefrag(hdr))
> > + if (ieee80211_has_morefrags(hdr->frame_control))
>=20
> looks fine to me, though I wonder if we should have
>=20
> ieee80211_has_morefrags(struct 80211hdr)
> and
> __ieee80211_has_morefrags(__le16 fc)
>=20
> or something with variants of the functions that do the ->frame_contr=
ol?

I considered that, but thought it was a small benefit for doubling the
number of helpers.

I chose the __le16 variant as there is some driver code that checks the=
se
values in driver-specific structures, so I just left it up to the calle=
r
to dereference whatever structure the frame control is held in.

But if both sets are wanted, I would suggest:

=EF=BB=BFieee80211_fc_has_morefrags(__le16 fc);

ieee80211_has_morefrags(struct ieee80211 *hdr)
{
return ieee80211_fc_has_morefrags(hdr->frame_control);
}

Do you think I should add the struct helper(s)?

Harvey

2008-06-09 17:32:30

by Harvey Harrison

[permalink] [raw]
Subject: Re: [PATCH 2/7] mac80211: replace ieee80211_get_morefrag with ieee80211_has_morefrags

On Mon, 2008-06-09 at 19:22 +0200, Johannes Berg wrote:
> On Mon, 2008-06-09 at 09:29 -0700, Harvey Harrison wrote:
> > On Mon, 2008-06-09 at 09:38 +0200, Johannes Berg wrote:
> > > > - if (ieee80211_get_morefrag(hdr))
> > > > + if (ieee80211_has_morefrags(hdr->frame_control))
> > >=20
> > > looks fine to me, though I wonder if we should have
> > >=20
> > > ieee80211_has_morefrags(struct 80211hdr)
> > > and
> > > __ieee80211_has_morefrags(__le16 fc)
> > >=20
> > > or something with variants of the functions that do the ->frame_c=
ontrol?
> >=20
> > I considered that, but thought it was a small benefit for doubling =
the
> > number of helpers.
> >=20
> > I chose the __le16 variant as there is some driver code that checks=
these
> > values in driver-specific structures, so I just left it up to the c=
aller
> > to dereference whatever structure the frame control is held in.
> >=20
> > But if both sets are wanted, I would suggest:
> >=20
> > =EF=BB=BFieee80211_fc_has_morefrags(__le16 fc);
> >=20
> > ieee80211_has_morefrags(struct ieee80211 *hdr)
> > {
> > return ieee80211_fc_has_morefrags(hdr->frame_control);
> > }
> >=20
> > Do you think I should add the struct helper(s)?
>=20
> It looks like you'd be using them in many places, so don't you think =
it
> would be helpful? I don't really care too much.
>=20

OK, I've added kernel-doc and incorporated the other comments, I'm not
going to add additional helpers for the struct ieee80211 case at this
time.

I'll check it over and send a revised version in a bit.

Harvey