netdev
[Top] [All Lists]

Re: [PATCH] reduce stack usage in ixgb_ethtool_ioctl

To: Dave Dillow <dave@xxxxxxxxxxxxxx>
Subject: Re: [PATCH] reduce stack usage in ixgb_ethtool_ioctl
From: Jeff Garzik <jgarzik@xxxxxxxxx>
Date: Sun, 19 Sep 2004 14:26:40 -0400
Cc: Denis Vlasenko <vda@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx
In-reply-to: <1095618283.4870.0.camel@xxxxxxxxxxxxxxxxxxx>
References: <200409192033.56716.vda@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <1095618283.4870.0.camel@xxxxxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2) Gecko/20040803
Dave Dillow wrote:
On Sun, 2004-09-19 at 13:33, Denis Vlasenko wrote:

Stack usage is still high because gcc will
allocate too much space for these cases:

       case ETHTOOL_GSET:{
                       struct ethtool_cmd ecmd = { ETHTOOL_GSET };
                       ixgb_ethtool_gset(adapter, &ecmd);
                       if (copy_to_user(addr, &ecmd, sizeof(ecmd)))
                               return -EFAULT;
                       return 0;
               }
       case ETHTOOL_SSET:{
                       struct ethtool_cmd ecmd;
                       if (copy_from_user(&ecmd, addr, sizeof(ecmd)))
                               return -EFAULT;
                       return ixgb_ethtool_sset(adapter, &ecmd);
               }

There will be space for _two_ ecmd's on stack.

Shall it be worked around with ugly union of structs
or we'll just wait for better gcc?


You could convert it to use ethtool_ops.

Check -mm to make sure viro hasn't already converted it to ethtool_ops...

        Jeff



<Prev in Thread] Current Thread [Next in Thread>