Commit 941ee45c authored by David S. Miller's avatar David S. Miller

Merge branch 'mlx4'

Amir Vadai says:

====================
net, net/mlx4: Add sysfs file for port number

Modern distro's are using biosdevname to rename interface to a name based on
slot/port number.
biosdevname can't get the port number of devices that have multiple ports that
share the same PCI function.
This patch adds a sysfs file under: /sys/devices/.../net/<interface>/dev_port,
that contains the port number (0 based) - to be used by biosdevname.
Also, dev_id was wrongly used in mlx4_en driver - added a patch that fix it.

This patch was tested and applied over commit 51adfcc "net: bcmgenet: remove
unused bh_lock member"
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents f2ea0cfd ca9f9f70
...@@ -2341,7 +2341,7 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port, ...@@ -2341,7 +2341,7 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port,
netif_set_real_num_rx_queues(dev, prof->rx_ring_num); netif_set_real_num_rx_queues(dev, prof->rx_ring_num);
SET_NETDEV_DEV(dev, &mdev->dev->pdev->dev); SET_NETDEV_DEV(dev, &mdev->dev->pdev->dev);
dev->dev_id = port - 1; dev->dev_port = port - 1;
/* /*
* Initialize driver private data * Initialize driver private data
......
...@@ -1279,6 +1279,10 @@ struct net_device { ...@@ -1279,6 +1279,10 @@ struct net_device {
* that share the same link * that share the same link
* layer address * layer address
*/ */
unsigned short dev_port; /* Used to differentiate
* devices that share the same
* function
*/
spinlock_t addr_list_lock; spinlock_t addr_list_lock;
struct netdev_hw_addr_list uc; /* Unicast mac addresses */ struct netdev_hw_addr_list uc; /* Unicast mac addresses */
struct netdev_hw_addr_list mc; /* Multicast mac addresses */ struct netdev_hw_addr_list mc; /* Multicast mac addresses */
......
...@@ -104,6 +104,7 @@ static ssize_t netdev_store(struct device *dev, struct device_attribute *attr, ...@@ -104,6 +104,7 @@ static ssize_t netdev_store(struct device *dev, struct device_attribute *attr,
} }
NETDEVICE_SHOW_RO(dev_id, fmt_hex); NETDEVICE_SHOW_RO(dev_id, fmt_hex);
NETDEVICE_SHOW_RO(dev_port, fmt_dec);
NETDEVICE_SHOW_RO(addr_assign_type, fmt_dec); NETDEVICE_SHOW_RO(addr_assign_type, fmt_dec);
NETDEVICE_SHOW_RO(addr_len, fmt_dec); NETDEVICE_SHOW_RO(addr_len, fmt_dec);
NETDEVICE_SHOW_RO(iflink, fmt_dec); NETDEVICE_SHOW_RO(iflink, fmt_dec);
...@@ -373,6 +374,7 @@ static struct attribute *net_class_attrs[] = { ...@@ -373,6 +374,7 @@ static struct attribute *net_class_attrs[] = {
&dev_attr_netdev_group.attr, &dev_attr_netdev_group.attr,
&dev_attr_type.attr, &dev_attr_type.attr,
&dev_attr_dev_id.attr, &dev_attr_dev_id.attr,
&dev_attr_dev_port.attr,
&dev_attr_iflink.attr, &dev_attr_iflink.attr,
&dev_attr_ifindex.attr, &dev_attr_ifindex.attr,
&dev_attr_addr_assign_type.attr, &dev_attr_addr_assign_type.attr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment