<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/net/core/ethtool.c, branch linux-4.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.1.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.1.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2017-06-26T02:02:20Z</updated>
<entry>
<title>ethtool: do not vzalloc(0) on registers dump</title>
<updated>2017-06-26T02:02:20Z</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2017-05-24T01:53:59Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=42c32ac3cec6a637b33697fd882a6ff20acedd14'/>
<id>urn:sha1:42c32ac3cec6a637b33697fd882a6ff20acedd14</id>
<content type='text'>
[ Upstream commit 3808d34838184fd29088d6b3a364ba2f1c018fb6 ]

If -&gt;get_regs_len() callback return 0, we allocate 0 bytes of memory,
what print ugly warning in dmesg, which can be found further below.

This happen on mac80211 devices where ieee80211_get_regs_len() just
return 0 and driver only fills ethtool_regs structure and actually
do not provide any dump. However I assume this can happen on other
drivers i.e. when for some devices driver provide regs dump and for
others do not. Hence preventing to to print warning in ethtool code
seems to be reasonable.

ethtool: vmalloc: allocation failure: 0 bytes, mode:0x24080c2(GFP_KERNEL|__GFP_HIGHMEM|__GFP_ZERO)
&lt;snip&gt;
Call Trace:
[&lt;ffffffff813bde47&gt;] dump_stack+0x63/0x8c
[&lt;ffffffff811b0a1f&gt;] warn_alloc+0x13f/0x170
[&lt;ffffffff811f0476&gt;] __vmalloc_node_range+0x1e6/0x2c0
[&lt;ffffffff811f0874&gt;] vzalloc+0x54/0x60
[&lt;ffffffff8169986c&gt;] dev_ethtool+0xb4c/0x1b30
[&lt;ffffffff816adbb1&gt;] dev_ioctl+0x181/0x520
[&lt;ffffffff816714d2&gt;] sock_do_ioctl+0x42/0x50
&lt;snip&gt;
Mem-Info:
active_anon:435809 inactive_anon:173951 isolated_anon:0
 active_file:835822 inactive_file:196932 isolated_file:0
 unevictable:0 dirty:8 writeback:0 unstable:0
 slab_reclaimable:157732 slab_unreclaimable:10022
 mapped:83042 shmem:306356 pagetables:9507 bounce:0
 free:130041 free_pcp:1080 free_cma:0
Node 0 active_anon:1743236kB inactive_anon:695804kB active_file:3343288kB inactive_file:787728kB unevictable:0kB isolated(anon):0kB isolated(file):0kB mapped:332168kB dirty:32kB writeback:0kB shmem:0kB shmem_thp: 0kB shmem_pmdmapped: 0kB anon_thp: 1225424kB writeback_tmp:0kB unstable:0kB pages_scanned:0 all_unreclaimable? no
Node 0 DMA free:15900kB min:136kB low:168kB high:200kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB present:15984kB managed:15900kB mlocked:0kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
lowmem_reserve[]: 0 3187 7643 7643
Node 0 DMA32 free:419732kB min:28124kB low:35152kB high:42180kB active_anon:541180kB inactive_anon:248988kB active_file:1466388kB inactive_file:389632kB unevictable:0kB writepending:0kB present:3370280kB managed:3290932kB mlocked:0kB slab_reclaimable:217184kB slab_unreclaimable:4180kB kernel_stack:160kB pagetables:984kB bounce:0kB free_pcp:2236kB local_pcp:660kB free_cma:0kB
lowmem_reserve[]: 0 0 4456 4456

Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
</content>
</entry>
<entry>
<title>ethtool: Use kcalloc instead of kmalloc for ethtool_get_strings</title>
<updated>2015-10-27T00:51:51Z</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2015-10-14T08:09:40Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=3f90898b43b4e7fea7a58f34f886a78b9f753e52'/>
<id>urn:sha1:3f90898b43b4e7fea7a58f34f886a78b9f753e52</id>
<content type='text'>
[ Upstream commit 077cb37fcf6f00a45f375161200b5ee0cd4e937b ]

It seems that kernel memory can leak into userspace by a
kmalloc, ethtool_get_strings, then copy_to_user sequence.

Avoid this by using kcalloc to zero fill the copied buffer.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Acked-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Revert "net: core: 'ethtool' issue with querying phy settings"</title>
<updated>2015-06-01T21:43:50Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2015-06-01T21:43:50Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=18ec898ee54e03a9aab8b54db50cb2b36209d313'/>
<id>urn:sha1:18ec898ee54e03a9aab8b54db50cb2b36209d313</id>
<content type='text'>
This reverts commit f96dee13b8e10f00840124255bed1d8b4c6afd6f.

It isn't right, ethtool is meant to manage one PHY instance
per netdevice at a time, and this is selected by the SET
command.  Therefore by definition the GET command must only
return the settings for the configured and selected PHY.

Reported-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: core: 'ethtool' issue with querying phy settings</title>
<updated>2015-05-22T20:14:17Z</updated>
<author>
<name>Arun Parameswaran</name>
<email>aparames@broadcom.com</email>
</author>
<published>2015-05-20T21:35:30Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f96dee13b8e10f00840124255bed1d8b4c6afd6f'/>
<id>urn:sha1:f96dee13b8e10f00840124255bed1d8b4c6afd6f</id>
<content type='text'>
When trying to configure the settings for PHY1, using commands
like 'ethtool -s eth0 phyad 1 speed 100', the 'ethtool' seems to
modify other settings apart from the speed of the PHY1, in the
above case.

The ethtool seems to query the settings for PHY0, and use this
as the base to apply the new settings to the PHY1. This is
causing the other settings of the PHY 1 to be wrongly
configured.

The issue is caused by the '_ethtool_get_settings()' API, which
gets called because of the 'ETHTOOL_GSET' command, is clearing
the 'cmd' pointer (of type 'struct ethtool_cmd') by calling
memset. This clears all the parameters (if any) passed for the
'ETHTOOL_GSET' cmd. So the driver's callback is always invoked
with 'cmd-&gt;phy_address' as '0'.

The '_ethtool_get_settings()' is called from other files in the
'net/core'. So the fix is applied to the 'ethtool_get_settings()'
which is only called in the context of the 'ethtool'.

Signed-off-by: Arun Parameswaran &lt;aparames@broadcom.com&gt;
Reviewed-by: Ray Jui &lt;rjui@broadcom.com&gt;
Reviewed-by: Scott Branden &lt;sbranden@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2015-03-04T02:16:48Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2015-03-04T02:16:48Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=71a83a6db6138b9d41d8a0b6b91cb59f6dc4742c'/>
<id>urn:sha1:71a83a6db6138b9d41d8a0b6b91cb59f6dc4742c</id>
<content type='text'>
Conflicts:
	drivers/net/ethernet/rocker/rocker.c

The rocker commit was two overlapping changes, one to rename
the -&gt;vport member to -&gt;pport, and another making the bitmask
expression use '1ULL' instead of plain '1'.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ethtool: use "ops" name consistenty in ethtool_set_rxfh()</title>
<updated>2015-02-22T03:05:53Z</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2015-02-20T10:54:05Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=d340c862e760815bca2f2a4d8fd91dff4646a955'/>
<id>urn:sha1:d340c862e760815bca2f2a4d8fd91dff4646a955</id>
<content type='text'>
"dev-&gt;ethtool_ops" and "ops" are the same, but we should use "ops"
everywhere to be consistent.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ethtool: Add hw-switch-offload to netdev_features_strings.</title>
<updated>2015-02-20T21:36:43Z</updated>
<author>
<name>Rami Rosen</name>
<email>ramirose@gmail.com</email>
</author>
<published>2015-02-20T19:34:58Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=65e9256c4ec569ed62bb89023daab7b72368b89f'/>
<id>urn:sha1:65e9256c4ec569ed62bb89023daab7b72368b89f</id>
<content type='text'>
commit aafb3e98b279 (netdev: introduce new NETIF_F_HW_SWITCH_OFFLOAD feature
flag for switch device offloads) add a new feature without adding it to
netdev_features_strings array; this patch fixes this.

Signed-off-by: Rami Rosen &lt;ramirose@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ethtool: Extend ethtool plugin module eeprom API to phylib</title>
<updated>2015-01-06T22:16:55Z</updated>
<author>
<name>Ed Swierk</name>
<email>eswierk@skyportsystems.com</email>
</author>
<published>2015-01-03T01:27:56Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2f4383667d57d1c719070db86b14277277752841'/>
<id>urn:sha1:2f4383667d57d1c719070db86b14277277752841</id>
<content type='text'>
This patch extends the ethtool plugin module eeprom API to support cards
whose phy support is delegated to a separate driver.

The handlers for ETHTOOL_GMODULEINFO and ETHTOOL_GMODULEEEPROM call the
module_info and module_eeprom functions if the phy driver provides them;
otherwise the handlers call the equivalent ethtool_ops functions provided
by network drivers with built-in phy support.

Signed-off-by: Ed Swierk &lt;eswierk@skyportsystems.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ethtool: Support for configurable RSS hash function</title>
<updated>2014-12-09T02:07:10Z</updated>
<author>
<name>Eyal Perry</name>
<email>eyalpe@mellanox.com</email>
</author>
<published>2014-12-02T16:12:10Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=892311f66f2411b813ca631009356891a0c2b0a1'/>
<id>urn:sha1:892311f66f2411b813ca631009356891a0c2b0a1</id>
<content type='text'>
This patch extends the set/get_rxfh ethtool-options for getting or
setting the RSS hash function.

It modifies drivers implementation of set/get_rxfh accordingly.

This change also delegates the responsibility of checking whether a
modification to a certain RX flow hash parameter is supported to the
driver implementation of set_rxfh.

User-kernel API is done through the new hfunc bitmask field in the
ethtool_rxfh struct. A bit set in the hfunc field is corresponding to an
index in the new string-set ETH_SS_RSS_HASH_FUNCS.

Got approval from most of the relevant driver maintainers that their
driver is using Toeplitz, and for the few that didn't answered, also
assumed it is Toeplitz.

Cc: Tom Lendacky &lt;thomas.lendacky@amd.com&gt;
Cc: Ariel Elior &lt;ariel.elior@qlogic.com&gt;
Cc: Prashant Sreedharan &lt;prashant@broadcom.com&gt;
Cc: Michael Chan &lt;mchan@broadcom.com&gt;
Cc: Hariprasad S &lt;hariprasad@chelsio.com&gt;
Cc: Sathya Perla &lt;sathya.perla@emulex.com&gt;
Cc: Subbu Seetharaman &lt;subbu.seetharaman@emulex.com&gt;
Cc: Ajit Khaparde &lt;ajit.khaparde@emulex.com&gt;
Cc: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Cc: Jesse Brandeburg &lt;jesse.brandeburg@intel.com&gt;
Cc: Bruce Allan &lt;bruce.w.allan@intel.com&gt;
Cc: Carolyn Wyborny &lt;carolyn.wyborny@intel.com&gt;
Cc: Don Skidmore &lt;donald.c.skidmore@intel.com&gt;
Cc: Greg Rose &lt;gregory.v.rose@intel.com&gt;
Cc: Matthew Vick &lt;matthew.vick@intel.com&gt;
Cc: John Ronciak &lt;john.ronciak@intel.com&gt;
Cc: Mitch Williams &lt;mitch.a.williams@intel.com&gt;
Cc: Amir Vadai &lt;amirv@mellanox.com&gt;
Cc: Solarflare linux maintainers &lt;linux-net-drivers@solarflare.com&gt;
Cc: Shradha Shah &lt;sshah@solarflare.com&gt;
Cc: Shreyas Bhatewara &lt;sbhatewara@vmware.com&gt;
Cc: "VMware, Inc." &lt;pv-drivers@vmware.com&gt;
Cc: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Eyal Perry &lt;eyalpe@mellanox.com&gt;
Signed-off-by: Amir Vadai &lt;amirv@mellanox.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: provide a per host RSS key generic infrastructure</title>
<updated>2014-11-16T20:59:11Z</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2014-11-16T14:23:05Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=960fb622f85180f36d3aff82af53e2be3db2f888'/>
<id>urn:sha1:960fb622f85180f36d3aff82af53e2be3db2f888</id>
<content type='text'>
RSS (Receive Side Scaling) typically uses Toeplitz hash and a 40 or 52 bytes
RSS key.

Some drivers use a constant (and well known key), some drivers use a random
key per port, making bonding setups hard to tune. Well known keys increase
attack surface, considering that number of queues is usually a power of two.

This patch provides infrastructure to help drivers doing the right thing.

netdev_rss_key_fill() should be used by drivers to initialize their RSS key,
even if they provide ethtool -X support to let user redefine the key later.

A new /proc/sys/net/core/netdev_rss_key file can be used to get the host
RSS key even for drivers not providing ethtool -x support, in case some
applications want to precisely setup flows to match some RX queues.

Tested:

myhost:~# cat /proc/sys/net/core/netdev_rss_key
11:63:99:bb:79:fb:a5:a7:07:45:b2:20:bf:02:42:2d:08:1a:dd:19:2b:6b:23:ac:56:28:9d:70:c3:ac:e8:16:4b:b7:c1:10:53:a4:78:41:36:40:74:b6:15:ca:27:44:aa:b3:4d:72

myhost:~# ethtool -x eth0
RX flow hash indirection table for eth0 with 8 RX ring(s):
    0:      0     1     2     3     4     5     6     7
RSS hash key:
11:63:99:bb:79:fb:a5:a7:07:45:b2:20:bf:02:42:2d:08:1a:dd:19:2b:6b:23:ac:56:28:9d:70:c3:ac:e8:16:4b:b7:c1:10:53:a4:78:41

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
