netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2/3] drivers/staging/rtl8192e: Don't pass huge struct by value
@ 2011-08-12 23:04 Jesper Juhl
  2011-08-12 23:25 ` Larry Finger
  0 siblings, 1 reply; 4+ messages in thread
From: Jesper Juhl @ 2011-08-12 23:04 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: devel, linux-kernel, Mike McCormack, Lucas De Marchi,
	Larry Finger, Stefan Weil, Andrea Merello, netdev

From: Jesper Juhl <jj@chaosbits.net>
Date: Sat, 13 Aug 2011 00:52:32 +0200

struct ieee80211_network is fairly large (more than half a kilobyte),
so let's pass a pointer instead of passing the entire structure by
value when ieee80211_is_54g() and ieee80211_is_shortslot() need to
look at a few members.
Also remove parentheses around the values being returned from those
two functions - 'return' is not a function.

Signed-off-by: Jesper Juhl <jj@chaosbits.net>
---
 drivers/staging/rtl8192e/ieee80211/ieee80211.h     |    4 ++--
 .../staging/rtl8192e/ieee80211/ieee80211_softmac.c |   14 +++++++-------
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/rtl8192e/ieee80211/ieee80211.h b/drivers/staging/rtl8192e/ieee80211/ieee80211.h
index 6d7963e..abc7a1b 100644
--- a/drivers/staging/rtl8192e/ieee80211/ieee80211.h
+++ b/drivers/staging/rtl8192e/ieee80211/ieee80211.h
@@ -2425,8 +2425,8 @@ int ieee80211_wx_set_mlme(struct ieee80211_device *ieee,
 int ieee80211_wx_set_gen_ie(struct ieee80211_device *ieee, u8 *ie, size_t len);
 
 /* ieee80211_softmac.c */
-short ieee80211_is_54g(struct ieee80211_network net);
-short ieee80211_is_shortslot(struct ieee80211_network net);
+short ieee80211_is_54g(const struct ieee80211_network *net);
+short ieee80211_is_shortslot(const struct ieee80211_network *net);
 int ieee80211_rx_frame_softmac(struct ieee80211_device *ieee, struct sk_buff *skb,
 			struct ieee80211_rx_stats *rx_stats, u16 type,
 			u16 stype);
diff --git a/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c
index 60e9a09..4a5e9b2 100644
--- a/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c
+++ b/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c
@@ -33,14 +33,14 @@ u8 rsn_authen_cipher_suite[16][4] = {
 	{0x00,0x0F,0xAC,0x05}, //WEP-104
 };
 
-short ieee80211_is_54g(struct ieee80211_network net)
+short ieee80211_is_54g(const struct ieee80211_network *net)
 {
-	return ((net.rates_ex_len > 0) || (net.rates_len > 4));
+	return (net->rates_ex_len > 0) || (net->rates_len > 4);
 }
 
-short ieee80211_is_shortslot(struct ieee80211_network net)
+short ieee80211_is_shortslot(const struct ieee80211_network *net)
 {
-	return (net.capability & WLAN_CAPABILITY_SHORT_SLOT);
+	return (net->capability & WLAN_CAPABILITY_SHORT_SLOT);
 }
 
 /* returns the total length needed for pleacing the RATE MFIE
@@ -723,7 +723,7 @@ static struct sk_buff* ieee80211_probe_resp(struct ieee80211_device *ieee, u8 *d
 	else
 		atim_len = 0;
 
-	if(ieee80211_is_54g(ieee->current_network))
+	if(ieee80211_is_54g(&ieee->current_network))
 		erp_len = 3;
 	else
 		erp_len = 0;
@@ -1351,7 +1351,7 @@ void ieee80211_associate_complete_wq(struct work_struct *work)
         struct ieee80211_device *ieee = container_of(work, struct ieee80211_device, associate_complete_wq);
 	printk(KERN_INFO "Associated successfully\n");
 	ieee->is_roaming = false;
-	if(ieee80211_is_54g(ieee->current_network) &&
+	if(ieee80211_is_54g(&ieee->current_network) &&
 		(ieee->modulation & IEEE80211_OFDM_MODULATION)){
 
 		ieee->rate = 108;
@@ -1504,7 +1504,7 @@ inline void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee
 					ieee->state = IEEE80211_ASSOCIATING;
 					queue_work(ieee->wq, &ieee->associate_procedure_wq);
 				}else{
-					if(ieee80211_is_54g(ieee->current_network) &&
+					if(ieee80211_is_54g(&ieee->current_network) &&
 						(ieee->modulation & IEEE80211_OFDM_MODULATION)){
 						ieee->rate = 108;
 						ieee->SetWirelessMode(ieee, IEEE_G);
-- 
1.7.6


-- 
Jesper Juhl <jj@chaosbits.net>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.

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

* Re: [PATCH 2/3] drivers/staging/rtl8192e: Don't pass huge struct by value
  2011-08-12 23:04 [PATCH 2/3] drivers/staging/rtl8192e: Don't pass huge struct by value Jesper Juhl
@ 2011-08-12 23:25 ` Larry Finger
  2011-08-23 19:08   ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: Larry Finger @ 2011-08-12 23:25 UTC (permalink / raw)
  To: Jesper Juhl
  Cc: Greg Kroah-Hartman, devel, linux-kernel, Mike McCormack,
	Lucas De Marchi, Stefan Weil, Andrea Merello, netdev

On 08/12/2011 06:04 PM, Jesper Juhl wrote:
> From: Jesper Juhl<jj@chaosbits.net>
> Date: Sat, 13 Aug 2011 00:52:32 +0200
>
> struct ieee80211_network is fairly large (more than half a kilobyte),
> so let's pass a pointer instead of passing the entire structure by
> value when ieee80211_is_54g() and ieee80211_is_shortslot() need to
> look at a few members.
> Also remove parentheses around the values being returned from those
> two functions - 'return' is not a function.
>
> Signed-off-by: Jesper Juhl<jj@chaosbits.net>
> ---
>   drivers/staging/rtl8192e/ieee80211/ieee80211.h     |    4 ++--
>   .../staging/rtl8192e/ieee80211/ieee80211_softmac.c |   14 +++++++-------
>   2 files changed, 9 insertions(+), 9 deletions(-)

This patch is a good one; however, in Greg's pile of unmerged patches is a 
completely different driver for the RTL8192E. The new driver has the advantage 
of being organized much more like the drivers in rtlwifi. That will make it 
easier to convert to mac80211 and move to mainline.

I also have a lot of unsubmitted patches to clean up the code in the new driver. 
At the moment, it is clear of 'checkpatch -f' errors, and most warnings. In 
addition, many of the sparse warnings are fixed. Once Greg merges the patches 
already submitted, I will send the others.

Larry

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

* Re: [PATCH 2/3] drivers/staging/rtl8192e: Don't pass huge struct by value
  2011-08-12 23:25 ` Larry Finger
@ 2011-08-23 19:08   ` Greg KH
  2011-08-23 19:22     ` Larry Finger
  0 siblings, 1 reply; 4+ messages in thread
From: Greg KH @ 2011-08-23 19:08 UTC (permalink / raw)
  To: Larry Finger
  Cc: Jesper Juhl, Greg Kroah-Hartman, devel, linux-kernel,
	Mike McCormack, Lucas De Marchi, Stefan Weil, Andrea Merello,
	netdev

On Fri, Aug 12, 2011 at 06:25:56PM -0500, Larry Finger wrote:
> On 08/12/2011 06:04 PM, Jesper Juhl wrote:
> >From: Jesper Juhl<jj@chaosbits.net>
> >Date: Sat, 13 Aug 2011 00:52:32 +0200
> >
> >struct ieee80211_network is fairly large (more than half a kilobyte),
> >so let's pass a pointer instead of passing the entire structure by
> >value when ieee80211_is_54g() and ieee80211_is_shortslot() need to
> >look at a few members.
> >Also remove parentheses around the values being returned from those
> >two functions - 'return' is not a function.
> >
> >Signed-off-by: Jesper Juhl<jj@chaosbits.net>
> >---
> >  drivers/staging/rtl8192e/ieee80211/ieee80211.h     |    4 ++--
> >  .../staging/rtl8192e/ieee80211/ieee80211_softmac.c |   14 +++++++-------
> >  2 files changed, 9 insertions(+), 9 deletions(-)
> 
> This patch is a good one; however, in Greg's pile of unmerged
> patches is a completely different driver for the RTL8192E. The new
> driver has the advantage of being organized much more like the
> drivers in rtlwifi. That will make it easier to convert to mac80211
> and move to mainline.
> 
> I also have a lot of unsubmitted patches to clean up the code in the
> new driver. At the moment, it is clear of 'checkpatch -f' errors,
> and most warnings. In addition, many of the sparse warnings are
> fixed. Once Greg merges the patches already submitted, I will send
> the others.

Ick, I give up.

Larry, can you resend me _all_ pending rtl8192e patches that you have
sent me that I should apply, in the order they should be applied in, as
I'm totally lost here and have now flushed all of the rtl8192e patches
that were in my inboxes out so I can start with a clean slate.

Sorry about this, the different versions of patches floating around
didn't help anything :(

greg k-h

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

* Re: [PATCH 2/3] drivers/staging/rtl8192e: Don't pass huge struct by value
  2011-08-23 19:08   ` Greg KH
@ 2011-08-23 19:22     ` Larry Finger
  0 siblings, 0 replies; 4+ messages in thread
From: Larry Finger @ 2011-08-23 19:22 UTC (permalink / raw)
  To: Greg KH
  Cc: Jesper Juhl, Greg Kroah-Hartman, devel, linux-kernel,
	Mike McCormack, Lucas De Marchi, Stefan Weil, Andrea Merello,
	netdev

On 08/23/2011 02:08 PM, Greg KH wrote:
>> the others.
>
> Ick, I give up.
>
> Larry, can you resend me _all_ pending rtl8192e patches that you have
> sent me that I should apply, in the order they should be applied in, as
> I'm totally lost here and have now flushed all of the rtl8192e patches
> that were in my inboxes out so I can start with a clean slate.
>
> Sorry about this, the different versions of patches floating around
> didn't help anything :(

I understand. I will resend.

Larry

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

end of thread, other threads:[~2011-08-23 19:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-12 23:04 [PATCH 2/3] drivers/staging/rtl8192e: Don't pass huge struct by value Jesper Juhl
2011-08-12 23:25 ` Larry Finger
2011-08-23 19:08   ` Greg KH
2011-08-23 19:22     ` Larry Finger

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).