Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git]
/
kernel
/
drivers
/
net
/
ethernet
/
sun
/
sunvnet.c
diff --git
a/kernel/drivers/net/ethernet/sun/sunvnet.c
b/kernel/drivers/net/ethernet/sun/sunvnet.c
index
53fe200
..
cc106d8
100644
(file)
--- a/
kernel/drivers/net/ethernet/sun/sunvnet.c
+++ b/
kernel/drivers/net/ethernet/sun/sunvnet.c
@@
-1756,7
+1756,8
@@
static const struct net_device_ops vnet_ops = {
#endif
};
#endif
};
-static struct vnet *vnet_new(const u64 *local_mac)
+static struct vnet *vnet_new(const u64 *local_mac,
+ struct vio_dev *vdev)
{
struct net_device *dev;
struct vnet *vp;
{
struct net_device *dev;
struct vnet *vp;
@@
-1790,6
+1791,8
@@
static struct vnet *vnet_new(const u64 *local_mac)
NETIF_F_HW_CSUM | NETIF_F_SG;
dev->features = dev->hw_features;
NETIF_F_HW_CSUM | NETIF_F_SG;
dev->features = dev->hw_features;
+ SET_NETDEV_DEV(dev, &vdev->dev);
+
err = register_netdev(dev);
if (err) {
pr_err("Cannot register net device, aborting\n");
err = register_netdev(dev);
if (err) {
pr_err("Cannot register net device, aborting\n");
@@
-1808,7
+1811,8
@@
err_out_free_dev:
return ERR_PTR(err);
}
return ERR_PTR(err);
}
-static struct vnet *vnet_find_or_create(const u64 *local_mac)
+static struct vnet *vnet_find_or_create(const u64 *local_mac,
+ struct vio_dev *vdev)
{
struct vnet *iter, *vp;
{
struct vnet *iter, *vp;
@@
-1821,7
+1825,7
@@
static struct vnet *vnet_find_or_create(const u64 *local_mac)
}
}
if (!vp)
}
}
if (!vp)
- vp = vnet_new(local_mac);
+ vp = vnet_new(local_mac
, vdev
);
mutex_unlock(&vnet_list_mutex);
return vp;
mutex_unlock(&vnet_list_mutex);
return vp;
@@
-1848,7
+1852,8
@@
static void vnet_cleanup(void)
static const char *local_mac_prop = "local-mac-address";
static struct vnet *vnet_find_parent(struct mdesc_handle *hp,
static const char *local_mac_prop = "local-mac-address";
static struct vnet *vnet_find_parent(struct mdesc_handle *hp,
- u64 port_node)
+ u64 port_node,
+ struct vio_dev *vdev)
{
const u64 *local_mac = NULL;
u64 a;
{
const u64 *local_mac = NULL;
u64 a;
@@
-1869,7
+1874,7
@@
static struct vnet *vnet_find_parent(struct mdesc_handle *hp,
if (!local_mac)
return ERR_PTR(-ENODEV);
if (!local_mac)
return ERR_PTR(-ENODEV);
- return vnet_find_or_create(local_mac);
+ return vnet_find_or_create(local_mac
, vdev
);
}
static struct ldc_channel_config vnet_ldc_cfg = {
}
static struct ldc_channel_config vnet_ldc_cfg = {
@@
-1923,7
+1928,7
@@
static int vnet_port_probe(struct vio_dev *vdev, const struct vio_device_id *id)
hp = mdesc_grab();
hp = mdesc_grab();
- vp = vnet_find_parent(hp, vdev->mp);
+ vp = vnet_find_parent(hp, vdev->mp
, vdev
);
if (IS_ERR(vp)) {
pr_err("Cannot find port parent vnet\n");
err = PTR_ERR(vp);
if (IS_ERR(vp)) {
pr_err("Cannot find port parent vnet\n");
err = PTR_ERR(vp);