浏览代码

Merge branch 'switchdev-cleanups'

Scott Feldman says:

====================
switchdev: more (minor) cleanups

Fix some sparse warnings and include some documentation review comments that
didn't get picked up in the switchdev Spring Cleanup series.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller 10 年之前
父节点
当前提交
1f7bd29bc0

+ 5 - 2
Documentation/networking/switchdev.txt

@@ -99,7 +99,7 @@ kernel pick the default netdev name, and let udev set the final name based on a
 port attribute.
 port attribute.
 
 
 Using port PHYS name (ndo_get_phys_port_name) for the key is particularly
 Using port PHYS name (ndo_get_phys_port_name) for the key is particularly
-useful for dynically-named ports where the device names it's ports based on
+useful for dynamically-named ports where the device names its ports based on
 external configuration.  For example, if a physical 40G port is split logically
 external configuration.  For example, if a physical 40G port is split logically
 into 4 10G ports, resulting in 4 port netdevs, the device can give a unique
 into 4 10G ports, resulting in 4 port netdevs, the device can give a unique
 name for each port using port PHYS name.  The udev rule would be:
 name for each port using port PHYS name.  The udev rule would be:
@@ -131,7 +131,7 @@ NETIF_F_NETNS_LOCAL
 If the switchdev driver (and device) only supports offloading of the default
 If the switchdev driver (and device) only supports offloading of the default
 network namespace (netns), the driver should set this feature flag to prevent
 network namespace (netns), the driver should set this feature flag to prevent
 the port netdev from being moved out of the default netns.  A netns-aware
 the port netdev from being moved out of the default netns.  A netns-aware
-driver/device would not set this flag and be resposible for partitioning
+driver/device would not set this flag and be responsible for partitioning
 hardware to preserve netns containment.  This means hardware cannot forward
 hardware to preserve netns containment.  This means hardware cannot forward
 traffic from a port in one namespace to another port in another namespace.
 traffic from a port in one namespace to another port in another namespace.
 
 
@@ -177,6 +177,9 @@ entries are installed, for example, using iproute2 bridge cmd:
 
 
 	bridge fdb add ADDR dev DEV [vlan VID] [self]
 	bridge fdb add ADDR dev DEV [vlan VID] [self]
 
 
+XXX: what should be done if offloading this rule to hardware fails (for
+example, due to full capacity in hardware tables) ?
+
 Note: by default, the bridge does not filter on VLAN and only bridges untagged
 Note: by default, the bridge does not filter on VLAN and only bridges untagged
 traffic.  To enable VLAN support, turn on VLAN filtering:
 traffic.  To enable VLAN support, turn on VLAN filtering:
 
 

+ 4 - 3
drivers/net/ethernet/rocker/rocker.c

@@ -4471,7 +4471,7 @@ static int rocker_port_obj_add(struct net_device *dev,
 	case SWITCHDEV_OBJ_IPV4_FIB:
 	case SWITCHDEV_OBJ_IPV4_FIB:
 		fib4 = &obj->ipv4_fib;
 		fib4 = &obj->ipv4_fib;
 		err = rocker_port_fib_ipv4(rocker_port, obj->trans,
 		err = rocker_port_fib_ipv4(rocker_port, obj->trans,
-					   fib4->dst, fib4->dst_len,
+					   htonl(fib4->dst), fib4->dst_len,
 					   fib4->fi, fib4->tb_id, 0);
 					   fib4->fi, fib4->tb_id, 0);
 		break;
 		break;
 	default:
 	default:
@@ -4525,8 +4525,9 @@ static int rocker_port_obj_del(struct net_device *dev,
 	case SWITCHDEV_OBJ_IPV4_FIB:
 	case SWITCHDEV_OBJ_IPV4_FIB:
 		fib4 = &obj->ipv4_fib;
 		fib4 = &obj->ipv4_fib;
 		err = rocker_port_fib_ipv4(rocker_port, SWITCHDEV_TRANS_NONE,
 		err = rocker_port_fib_ipv4(rocker_port, SWITCHDEV_TRANS_NONE,
-					   fib4->dst, fib4->dst_len, fib4->fi,
-					   fib4->tb_id, ROCKER_OP_FLAG_REMOVE);
+					   htonl(fib4->dst), fib4->dst_len,
+					   fib4->fi, fib4->tb_id,
+					   ROCKER_OP_FLAG_REMOVE);
 		break;
 		break;
 	default:
 	default:
 		err = -EOPNOTSUPP;
 		err = -EOPNOTSUPP;

+ 1 - 1
include/net/switchdev.h

@@ -53,7 +53,7 @@ struct switchdev_obj {
 	enum switchdev_obj_id id;
 	enum switchdev_obj_id id;
 	enum switchdev_trans trans;
 	enum switchdev_trans trans;
 	union {
 	union {
-		struct switchdev_obj_vlan {			/* PORT_VLAN */
+		struct switchdev_obj_vlan {		/* PORT_VLAN */
 			u16 flags;
 			u16 flags;
 			u16 vid_start;
 			u16 vid_start;
 			u16 vid_end;
 			u16 vid_end;

+ 4 - 3
net/switchdev/switchdev.c

@@ -188,7 +188,8 @@ int switchdev_port_attr_set(struct net_device *dev, struct switchdev_attr *attr)
 }
 }
 EXPORT_SYMBOL_GPL(switchdev_port_attr_set);
 EXPORT_SYMBOL_GPL(switchdev_port_attr_set);
 
 
-int __switchdev_port_obj_add(struct net_device *dev, struct switchdev_obj *obj)
+static int __switchdev_port_obj_add(struct net_device *dev,
+				    struct switchdev_obj *obj)
 {
 {
 	const struct switchdev_ops *ops = dev->switchdev_ops;
 	const struct switchdev_ops *ops = dev->switchdev_ops;
 	struct net_device *lower_dev;
 	struct net_device *lower_dev;
@@ -644,7 +645,7 @@ int switchdev_fib_ipv4_add(u32 dst, int dst_len, struct fib_info *fi,
 	struct switchdev_obj fib_obj = {
 	struct switchdev_obj fib_obj = {
 		.id = SWITCHDEV_OBJ_IPV4_FIB,
 		.id = SWITCHDEV_OBJ_IPV4_FIB,
 		.ipv4_fib = {
 		.ipv4_fib = {
-			.dst = htonl(dst),
+			.dst = dst,
 			.dst_len = dst_len,
 			.dst_len = dst_len,
 			.fi = fi,
 			.fi = fi,
 			.tos = tos,
 			.tos = tos,
@@ -698,7 +699,7 @@ int switchdev_fib_ipv4_del(u32 dst, int dst_len, struct fib_info *fi,
 	struct switchdev_obj fib_obj = {
 	struct switchdev_obj fib_obj = {
 		.id = SWITCHDEV_OBJ_IPV4_FIB,
 		.id = SWITCHDEV_OBJ_IPV4_FIB,
 		.ipv4_fib = {
 		.ipv4_fib = {
-			.dst = htonl(dst),
+			.dst = dst,
 			.dst_len = dst_len,
 			.dst_len = dst_len,
 			.fi = fi,
 			.fi = fi,
 			.tos = tos,
 			.tos = tos,