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