netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] e1000e: get rid of wasted space
@ 2008-10-21  2:11 Stephen Hemminger
  2008-10-21 10:23 ` Ben Hutchings
  2008-10-22 11:03 ` Jeff Garzik
  0 siblings, 2 replies; 5+ messages in thread
From: Stephen Hemminger @ 2008-10-21  2:11 UTC (permalink / raw)
  To: Jesse Brandeburg, e1000-devel, netdev

The name in the ring is only used once during setup so it shouldn't
be in the data structure.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/drivers/net/e1000e/e1000.h	2008-10-20 18:13:53.000000000 -0700
+++ b/drivers/net/e1000e/e1000.h	2008-10-20 18:18:30.000000000 -0700
@@ -153,7 +153,6 @@ struct e1000_ring {
 	/* array of buffer information structs */
 	struct e1000_buffer *buffer_info;
 
-	char name[IFNAMSIZ + 5];
 	u32 ims_val;
 	u32 itr_val;
 	u16 itr_register;
--- a/drivers/net/e1000e/netdev.c	2008-10-20 18:19:22.000000000 -0700
+++ b/drivers/net/e1000e/netdev.c	2008-10-20 18:21:00.000000000 -0700
@@ -1473,27 +1473,20 @@ static int e1000_request_msix(struct e10
 {
 	struct net_device *netdev = adapter->netdev;
 	int err = 0, vector = 0;
+	char irqname[IFNAMSIZ+5];
 
-	if (strlen(netdev->name) < (IFNAMSIZ - 5))
-		sprintf(adapter->rx_ring->name, "%s-rx0", netdev->name);
-	else
-		memcpy(adapter->rx_ring->name, netdev->name, IFNAMSIZ);
+	snprintf(irqname, sizeof(irqname), "%s-rx0", netdev->name);
 	err = request_irq(adapter->msix_entries[vector].vector,
-			  &e1000_intr_msix_rx, 0, adapter->rx_ring->name,
-			  netdev);
+			  &e1000_intr_msix_rx, 0, irqname, netdev);
 	if (err)
 		goto out;
 	adapter->rx_ring->itr_register = E1000_EITR_82574(vector);
 	adapter->rx_ring->itr_val = adapter->itr;
 	vector++;
 
-	if (strlen(netdev->name) < (IFNAMSIZ - 5))
-		sprintf(adapter->tx_ring->name, "%s-tx0", netdev->name);
-	else
-		memcpy(adapter->tx_ring->name, netdev->name, IFNAMSIZ);
+	snprintf(irqname, sizeof(irqname), "%s-tx0", netdev->name);
 	err = request_irq(adapter->msix_entries[vector].vector,
-			  &e1000_intr_msix_tx, 0, adapter->tx_ring->name,
-			  netdev);
+			  &e1000_intr_msix_tx, 0, irqname, netdev);
 	if (err)
 		goto out;
 	adapter->tx_ring->itr_register = E1000_EITR_82574(vector);

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

* Re: [PATCH] e1000e: get rid of wasted space
  2008-10-21  2:11 [PATCH] e1000e: get rid of wasted space Stephen Hemminger
@ 2008-10-21 10:23 ` Ben Hutchings
  2008-10-22 11:03 ` Jeff Garzik
  1 sibling, 0 replies; 5+ messages in thread
From: Ben Hutchings @ 2008-10-21 10:23 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Jesse Brandeburg, e1000-devel, netdev

On Mon, 2008-10-20 at 19:11 -0700, Stephen Hemminger wrote:
> The name in the ring is only used once during setup so it shouldn't
> be in the data structure.
[...]

No.  The name pointer passed to request_irq() has to remain valid until
the IRQ is freed.  Try looking in /proc/interrupts.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.


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

* Re: [PATCH] e1000e: get rid of wasted space
  2008-10-21  2:11 [PATCH] e1000e: get rid of wasted space Stephen Hemminger
  2008-10-21 10:23 ` Ben Hutchings
@ 2008-10-22 11:03 ` Jeff Garzik
  2008-10-22 18:01   ` Williams, Mitch A
  1 sibling, 1 reply; 5+ messages in thread
From: Jeff Garzik @ 2008-10-22 11:03 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Jesse Brandeburg, e1000-devel, netdev

Stephen Hemminger wrote:
> The name in the ring is only used once during setup so it shouldn't
> be in the data structure.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
> 
> --- a/drivers/net/e1000e/e1000.h	2008-10-20 18:13:53.000000000 -0700
> +++ b/drivers/net/e1000e/e1000.h	2008-10-20 18:18:30.000000000 -0700
> @@ -153,7 +153,6 @@ struct e1000_ring {
>  	/* array of buffer information structs */
>  	struct e1000_buffer *buffer_info;
>  
> -	char name[IFNAMSIZ + 5];
>  	u32 ims_val;
>  	u32 itr_val;
>  	u16 itr_register;
> --- a/drivers/net/e1000e/netdev.c	2008-10-20 18:19:22.000000000 -0700
> +++ b/drivers/net/e1000e/netdev.c	2008-10-20 18:21:00.000000000 -0700
> @@ -1473,27 +1473,20 @@ static int e1000_request_msix(struct e10
>  {
>  	struct net_device *netdev = adapter->netdev;
>  	int err = 0, vector = 0;
> +	char irqname[IFNAMSIZ+5];
>  
> -	if (strlen(netdev->name) < (IFNAMSIZ - 5))
> -		sprintf(adapter->rx_ring->name, "%s-rx0", netdev->name);
> -	else
> -		memcpy(adapter->rx_ring->name, netdev->name, IFNAMSIZ);
> +	snprintf(irqname, sizeof(irqname), "%s-rx0", netdev->name);
>  	err = request_irq(adapter->msix_entries[vector].vector,
> -			  &e1000_intr_msix_rx, 0, adapter->rx_ring->name,
> -			  netdev);
> +			  &e1000_intr_msix_rx, 0, irqname, netdev);
>  	if (err)
>  		goto out;
>  	adapter->rx_ring->itr_register = E1000_EITR_82574(vector);
>  	adapter->rx_ring->itr_val = adapter->itr;
>  	vector++;
>  
> -	if (strlen(netdev->name) < (IFNAMSIZ - 5))
> -		sprintf(adapter->tx_ring->name, "%s-tx0", netdev->name);
> -	else
> -		memcpy(adapter->tx_ring->name, netdev->name, IFNAMSIZ);
> +	snprintf(irqname, sizeof(irqname), "%s-tx0", netdev->name);
>  	err = request_irq(adapter->msix_entries[vector].vector,
> -			  &e1000_intr_msix_tx, 0, adapter->tx_ring->name,
> -			  netdev);
> +			  &e1000_intr_msix_tx, 0, irqname, netdev);
>  	if (err)
>  		goto out;
>  	adapter->tx_ring->itr_register = E1000_EITR_82574(vector);

ACK

for what it's worth...  I am following DaveM's lead, and waiting until 
net-next opens to start taking patches for 2.6.29.  He wants us to focus 
on bug fixing for now.

So, please resend once the merge window opens... thanks.

	Jeff





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

* Re: [PATCH] e1000e: get rid of wasted space
  2008-10-22 11:03 ` Jeff Garzik
@ 2008-10-22 18:01   ` Williams, Mitch A
  2008-10-22 18:07     ` Stephen Hemminger
  0 siblings, 1 reply; 5+ messages in thread
From: Williams, Mitch A @ 2008-10-22 18:01 UTC (permalink / raw)
  To: Jeff Garzik, Stephen Hemminger
  Cc: e1000-devel@lists.sourceforge.net, netdev@vger.kernel.org,
	Brandeburg, Jesse

Jeff Garzik wrote:

>
>Stephen Hemminger wrote:
>> The name in the ring is only used once during setup so it shouldn't
>> be in the data structure.
>>
>> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
[snip]
>
>ACK
>
>for what it's worth...  I am following DaveM's lead, and waiting until
>net-next opens to start taking patches for 2.6.29.  He wants
>us to focus
>on bug fixing for now.
>
>So, please resend once the merge window opens... thanks.
>

NAK.  Seriously. Don't resend this.  NAK.

That string DOES get used later, like when you cat /proc/interrupts.
So you can't allocate it on the stack.  It's got to be persistent,
just like we have it.  Heck, look at the declaration for
request_irq().  The devname param is declared as const char *.

So NAK.  Same for igb and ixgbe.  Don't do this.

-Mitch

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

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

* Re: [PATCH] e1000e: get rid of wasted space
  2008-10-22 18:01   ` Williams, Mitch A
@ 2008-10-22 18:07     ` Stephen Hemminger
  0 siblings, 0 replies; 5+ messages in thread
From: Stephen Hemminger @ 2008-10-22 18:07 UTC (permalink / raw)
  To: Williams, Mitch A
  Cc: Jeff Garzik, Brandeburg, Jesse, e1000-devel@lists.sourceforge.net,
	netdev@vger.kernel.org

On Wed, 22 Oct 2008 12:01:16 -0600
"Williams, Mitch A" <mitch.a.williams@intel.com> wrote:

> Jeff Garzik wrote:
> 
> >
> >Stephen Hemminger wrote:
> >> The name in the ring is only used once during setup so it shouldn't
> >> be in the data structure.
> >>
> >> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
> [snip]
> >
> >ACK
> >
> >for what it's worth...  I am following DaveM's lead, and waiting until
> >net-next opens to start taking patches for 2.6.29.  He wants
> >us to focus
> >on bug fixing for now.
> >
> >So, please resend once the merge window opens... thanks.
> >
> 
> NAK.  Seriously. Don't resend this.  NAK.
> 
> That string DOES get used later, like when you cat /proc/interrupts.
> So you can't allocate it on the stack.  It's got to be persistent,
> just like we have it.  Heck, look at the declaration for
> request_irq().  The devname param is declared as const char *.
> 
> So NAK.  Same for igb and ixgbe.  Don't do this.
> 
> -Mitch

The comments were right, this needs to stay, although it might be better
to use a bigger field to allow full width of IFNAME+5


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

end of thread, other threads:[~2008-10-22 18:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-21  2:11 [PATCH] e1000e: get rid of wasted space Stephen Hemminger
2008-10-21 10:23 ` Ben Hutchings
2008-10-22 11:03 ` Jeff Garzik
2008-10-22 18:01   ` Williams, Mitch A
2008-10-22 18:07     ` Stephen Hemminger

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