netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] d80211: extend extra_hdr_room to be a bytecount
@ 2006-10-11  9:58 Michael Buesch
  2006-10-11 14:59 ` David Kimdon
  0 siblings, 1 reply; 4+ messages in thread
From: Michael Buesch @ 2006-10-11  9:58 UTC (permalink / raw)
  To: John W. Linville, Jiri Benc; +Cc: netdev, David Kimdon

Extend ieee80211_hw's extra_hdr_room to be a bytecount for
a device specific TX header instead of being a hardcoded
0/2 byte choice.

Signed-off-by: Michael Buesch <mb@bu3sch.de>

diff --git a/include/net/d80211.h b/include/net/d80211.h
index a80f48b..9e9709f 100644
--- a/include/net/d80211.h
+++ b/include/net/d80211.h
@@ -476,10 +476,6 @@ struct ieee80211_hw {
 	/* Force software encryption for TKIP packets if WMM is enabled. */
 	unsigned int no_tkip_wmm_hwaccel:1;
 
-	/* set if the payload needs to be padded at even boundaries after the
-	 * header */
-	unsigned int extra_hdr_room:1;
-
 	/* Some devices handle Michael MIC internally and do not include MIC in
 	 * the received packets passed up. device_strips_mic must be set
 	 * for such devices. The 'encryption' frame control bit is expected to
@@ -496,6 +492,9 @@ struct ieee80211_hw {
 	 * i.e. more than one skb per frame */
 	unsigned int fraglist:1;
 
+	/* Set to the size of a needed device specific skb headroom for TX skbs. */
+	unsigned int extra_hdr_room;
+
         /* This is the time in us to change channels
          */
         int channel_change_time;
diff --git a/net/d80211/ieee80211.c b/net/d80211/ieee80211.c
index 1ef2707..7d52c3b 100644
--- a/net/d80211/ieee80211.c
+++ b/net/d80211/ieee80211.c
@@ -1551,7 +1551,7 @@ static int ieee80211_subif_start_xmit(st
 	 * build in headroom in __dev_alloc_skb() (linux/skbuff.h) and
 	 * alloc_skb() (net/core/skbuff.c)
 	 */
-	head_need = hdrlen + encaps_len + (local->hw->extra_hdr_room ? 2 : 0);
+	head_need = hdrlen + encaps_len + local->hw->extra_hdr_room;
 	head_need -= skb_headroom(skb);
 
 	/* We are going to modify skb data, so make a copy of it if happens to


-- 
Greetings Michael.

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] d80211: extend extra_hdr_room to be a bytecount
  2006-10-11  9:58 [PATCH] d80211: extend extra_hdr_room to be a bytecount Michael Buesch
@ 2006-10-11 14:59 ` David Kimdon
  2006-10-11 20:43   ` Michael Buesch
  2006-10-19 16:25   ` Jiri Benc
  0 siblings, 2 replies; 4+ messages in thread
From: David Kimdon @ 2006-10-11 14:59 UTC (permalink / raw)
  To: Michael Buesch; +Cc: John W. Linville, Jiri Benc, netdev, David Kimdon

Perhaps rename it to extra_tx_headroom?
 - existing users would then need to take notice of the change
 - the name 'extra_tx_headroom' is more descriptive of what it actually is

-David

On Wed, Oct 11, 2006 at 11:58:28AM +0200, Michael Buesch wrote:
> Extend ieee80211_hw's extra_hdr_room to be a bytecount for
> a device specific TX header instead of being a hardcoded
> 0/2 byte choice.
> 
> Signed-off-by: Michael Buesch <mb@bu3sch.de>
> 
> diff --git a/include/net/d80211.h b/include/net/d80211.h
> index a80f48b..9e9709f 100644
> --- a/include/net/d80211.h
> +++ b/include/net/d80211.h
> @@ -476,10 +476,6 @@ struct ieee80211_hw {
>  	/* Force software encryption for TKIP packets if WMM is enabled. */
>  	unsigned int no_tkip_wmm_hwaccel:1;
>  
> -	/* set if the payload needs to be padded at even boundaries after the
> -	 * header */
> -	unsigned int extra_hdr_room:1;
> -
>  	/* Some devices handle Michael MIC internally and do not include MIC in
>  	 * the received packets passed up. device_strips_mic must be set
>  	 * for such devices. The 'encryption' frame control bit is expected to
> @@ -496,6 +492,9 @@ struct ieee80211_hw {
>  	 * i.e. more than one skb per frame */
>  	unsigned int fraglist:1;
>  
> +	/* Set to the size of a needed device specific skb headroom for TX skbs. */
> +	unsigned int extra_hdr_room;
> +
>          /* This is the time in us to change channels
>           */
>          int channel_change_time;
> diff --git a/net/d80211/ieee80211.c b/net/d80211/ieee80211.c
> index 1ef2707..7d52c3b 100644
> --- a/net/d80211/ieee80211.c
> +++ b/net/d80211/ieee80211.c
> @@ -1551,7 +1551,7 @@ static int ieee80211_subif_start_xmit(st
>  	 * build in headroom in __dev_alloc_skb() (linux/skbuff.h) and
>  	 * alloc_skb() (net/core/skbuff.c)
>  	 */
> -	head_need = hdrlen + encaps_len + (local->hw->extra_hdr_room ? 2 : 0);
> +	head_need = hdrlen + encaps_len + local->hw->extra_hdr_room;
>  	head_need -= skb_headroom(skb);
>  
>  	/* We are going to modify skb data, so make a copy of it if happens to
> 
> 
> -- 
> Greetings Michael.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] d80211: extend extra_hdr_room to be a bytecount
  2006-10-11 14:59 ` David Kimdon
@ 2006-10-11 20:43   ` Michael Buesch
  2006-10-19 16:25   ` Jiri Benc
  1 sibling, 0 replies; 4+ messages in thread
From: Michael Buesch @ 2006-10-11 20:43 UTC (permalink / raw)
  To: David Kimdon; +Cc: John W. Linville, Jiri Benc, netdev

On Wednesday 11 October 2006 16:59, David Kimdon wrote:
> Perhaps rename it to extra_tx_headroom?
>  - existing users would then need to take notice of the change
>  - the name 'extra_tx_headroom' is more descriptive of what it actually is

Oh, yeah. This was lazyman's solution ;)
I will send an updated patch.

-- 
Greetings Michael.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] d80211: extend extra_hdr_room to be a bytecount
  2006-10-11 14:59 ` David Kimdon
  2006-10-11 20:43   ` Michael Buesch
@ 2006-10-19 16:25   ` Jiri Benc
  1 sibling, 0 replies; 4+ messages in thread
From: Jiri Benc @ 2006-10-19 16:25 UTC (permalink / raw)
  To: David Kimdon; +Cc: Michael Buesch, John W. Linville, netdev

On Wed, 11 Oct 2006 07:59:23 -0700, David Kimdon wrote:
> Perhaps rename it to extra_tx_headroom?
>  - existing users would then need to take notice of the change
>  - the name 'extra_tx_headroom' is more descriptive of what it actually is

Extend ieee80211_hw's extra_hdr_room to be a bytecount for
a device specific TX header instead of being a hardcoded
0/2 byte choice.

Based on the patch by Michael Buesch <mb@bu3sch.de>.

Signed-off-by: Jiri Benc <jbenc@suse.cz>

---
 drivers/net/wireless/d80211/adm8211/adm8211.c  |    2 +-
 drivers/net/wireless/d80211/rt2x00/rt2400pci.c |    2 +-
 drivers/net/wireless/d80211/rt2x00/rt2500pci.c |    2 +-
 drivers/net/wireless/d80211/rt2x00/rt2500usb.c |    2 +-
 drivers/net/wireless/d80211/rt2x00/rt61pci.c   |    2 +-
 drivers/net/wireless/d80211/rt2x00/rt73usb.c   |    2 +-
 include/net/d80211.h                           |    7 +++----
 net/d80211/ieee80211.c                         |    2 +-
 8 files changed, 10 insertions(+), 11 deletions(-)

--- dscape.orig/drivers/net/wireless/d80211/adm8211/adm8211.c
+++ dscape/drivers/net/wireless/d80211/adm8211/adm8211.c
@@ -2018,7 +2018,7 @@ static int __devinit adm8211_probe(struc
 	hw->wep_include_iv = 1;
 	hw->data_nullfunc_ack = 0;
 	hw->no_tkip_wmm_hwaccel = 1;
-	hw->extra_hdr_room = 0;
+	hw->extra_tx_headroom = 0;
 	hw->device_strips_mic = 0;
 	hw->monitor_during_oper = 0;
 	hw->fraglist = 0;
--- dscape.orig/drivers/net/wireless/d80211/rt2x00/rt2400pci.c
+++ dscape/drivers/net/wireless/d80211/rt2x00/rt2400pci.c
@@ -2578,7 +2578,7 @@ static int rt2400pci_init_hw(struct rt2x
 	hw->wep_include_iv = 1;
 	hw->data_nullfunc_ack = 1;
 	hw->no_tkip_wmm_hwaccel = 1;
-	hw->extra_hdr_room = 0;
+	hw->extra_tx_headroom = 0;
 	hw->device_strips_mic = 0;
 	hw->monitor_during_oper = 1;
 	hw->fraglist = 0;
--- dscape.orig/drivers/net/wireless/d80211/rt2x00/rt2500pci.c
+++ dscape/drivers/net/wireless/d80211/rt2x00/rt2500pci.c
@@ -2732,7 +2732,7 @@ static int rt2500pci_init_hw(struct rt2x
 	hw->wep_include_iv = 1;
 	hw->data_nullfunc_ack = 1;
 	hw->no_tkip_wmm_hwaccel = 1;
-	hw->extra_hdr_room = 0;
+	hw->extra_tx_headroom = 0;
 	hw->device_strips_mic = 0;
 	hw->monitor_during_oper = 1;
 	hw->fraglist = 0;
--- dscape.orig/drivers/net/wireless/d80211/rt2x00/rt2500usb.c
+++ dscape/drivers/net/wireless/d80211/rt2x00/rt2500usb.c
@@ -2419,7 +2419,7 @@ static int rt2500usb_init_hw(struct rt2x
 	hw->wep_include_iv = 1;
 	hw->data_nullfunc_ack = 1;
 	hw->no_tkip_wmm_hwaccel = 1;
-	hw->extra_hdr_room = 0;
+	hw->extra_tx_headroom = 0;
 	hw->device_strips_mic = 0;
 	hw->monitor_during_oper = 1;
 	hw->fraglist = 0;
--- dscape.orig/drivers/net/wireless/d80211/rt2x00/rt61pci.c
+++ dscape/drivers/net/wireless/d80211/rt2x00/rt61pci.c
@@ -3252,7 +3252,7 @@ static int rt61pci_init_hw(struct rt2x00
 	hw->wep_include_iv = 1;
 	hw->data_nullfunc_ack = 1;
 	hw->no_tkip_wmm_hwaccel = 1;
-	hw->extra_hdr_room = 0;
+	hw->extra_tx_headroom = 0;
 	hw->device_strips_mic = 0;
 	hw->monitor_during_oper = 1;
 	hw->fraglist = 0;
--- dscape.orig/drivers/net/wireless/d80211/rt2x00/rt73usb.c
+++ dscape/drivers/net/wireless/d80211/rt2x00/rt73usb.c
@@ -2792,7 +2792,7 @@ static int rt73usb_init_hw(struct rt2x00
 	hw->wep_include_iv = 1;
 	hw->data_nullfunc_ack = 1;
 	hw->no_tkip_wmm_hwaccel = 1;
-	hw->extra_hdr_room = 0;
+	hw->extra_tx_headroom = 0;
 	hw->device_strips_mic = 0;
 	hw->monitor_during_oper = 1;
 	hw->fraglist = 0;
--- dscape.orig/include/net/d80211.h
+++ dscape/include/net/d80211.h
@@ -456,10 +456,6 @@ struct ieee80211_hw {
 	/* Force software encryption for TKIP packets if WMM is enabled. */
 	unsigned int no_tkip_wmm_hwaccel:1;
 
-	/* set if the payload needs to be padded at even boundaries after the
-	 * header */
-	unsigned int extra_hdr_room:1;
-
 	/* Some devices handle Michael MIC internally and do not include MIC in
 	 * the received packets passed up. device_strips_mic must be set
 	 * for such devices. The 'encryption' frame control bit is expected to
@@ -476,6 +472,9 @@ struct ieee80211_hw {
 	 * i.e. more than one skb per frame */
 	unsigned int fraglist:1;
 
+	/* Set to the size of a needed device specific skb headroom for TX skbs. */
+	unsigned int extra_tx_headroom;
+
         /* This is the time in us to change channels
          */
         int channel_change_time;
--- dscape.orig/net/d80211/ieee80211.c
+++ dscape/net/d80211/ieee80211.c
@@ -1511,7 +1511,7 @@ static int ieee80211_subif_start_xmit(st
 	 * build in headroom in __dev_alloc_skb() (linux/skbuff.h) and
 	 * alloc_skb() (net/core/skbuff.c)
 	 */
-	head_need = hdrlen + encaps_len + (local->hw->extra_hdr_room ? 2 : 0);
+	head_need = hdrlen + encaps_len + local->hw->extra_tx_headroom;
 	head_need -= skb_headroom(skb);
 
 	/* We are going to modify skb data, so make a copy of it if happens to

-- 
Jiri Benc
SUSE Labs

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-10-19 16:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-11  9:58 [PATCH] d80211: extend extra_hdr_room to be a bytecount Michael Buesch
2006-10-11 14:59 ` David Kimdon
2006-10-11 20:43   ` Michael Buesch
2006-10-19 16:25   ` Jiri Benc

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).