X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Fdp_sysfs_dp.c;h=587b8bc2d5e40c17e379979e5ab71ef6b22b0260;hb=d825e2a5dcc5193067215cbf2466417cebebab9b;hp=413dfc31c232a3c2ddfc084ee99450e7fb8eae99;hpb=e779d8d90d65297473febcf82ec44c9225cc4fe3;p=openvswitch diff --git a/datapath/dp_sysfs_dp.c b/datapath/dp_sysfs_dp.c index 413dfc31..587b8bc2 100644 --- a/datapath/dp_sysfs_dp.c +++ b/datapath/dp_sysfs_dp.c @@ -43,7 +43,7 @@ #define DEV_ATTR(NAME) dev_attr_##NAME #endif -struct datapath *sysfs_get_dp(struct net_device *netdev) +static struct datapath *sysfs_get_dp(struct net_device *netdev) { struct vport *vport = internal_dev_get_vport(netdev); return vport ? vport->dp : NULL; @@ -350,7 +350,8 @@ static struct attribute_group bridge_group = { */ int dp_sysfs_add_dp(struct datapath *dp) { - struct kobject *kobj = vport_get_kobj(dp->ports[ODPP_LOCAL]); + struct kobject *kobj = + vport_get_kobj(rtnl_dereference(dp->ports[ODPP_LOCAL])); int err; /* Create /sys/class/net//bridge directory. */ @@ -379,7 +380,8 @@ int dp_sysfs_add_dp(struct datapath *dp) int dp_sysfs_del_dp(struct datapath *dp) { - struct kobject *kobj = vport_get_kobj(dp->ports[ODPP_LOCAL]); + struct kobject *kobj = + vport_get_kobj(rtnl_dereference(dp->ports[ODPP_LOCAL])); kobject_del(&dp->ifobj); sysfs_remove_group(kobj, &bridge_group);