net: qualcomm: rmnet: Updates 2018-03-12
Subsystems (3)
v3 cover net: qualcomm: rmnet: Updates 2018-03-12
This series contains some minor updates for rmnet driver.
Patch 1 contains fixes for sparse warnings.
Patch 2 updates the copyright date to 2018.
Patch 3 is a cleanup in receive path.
Patch 4 has the implementation of the fill_info operation.
v1->v2: Remove the force casts since the data type is changed to __be types as mentioned by David.
v3>-v3: Update copyright in files which actually had changes as mentioned by Joe.
Subash Abhinov Kasiviswanathan (4):
net: qualcomm: rmnet: Fix casting issues
net: qualcomm: rmnet: Update copyright year to 2018
net: qualcomm: rmnet: Remove unnecessary device assignment
net: qualcomm: rmnet: Implement fill_info
drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c | 32 +++++++++++++++++++++- drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h | 2 +- .../net/ethernet/qualcomm/rmnet/rmnet_handlers.c | 2 +- drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h | 8 +++--- .../ethernet/qualcomm/rmnet/rmnet_map_command.c | 2 +- .../net/ethernet/qualcomm/rmnet/rmnet_map_data.c | 3 +- .../net/ethernet/qualcomm/rmnet/rmnet_private.h | 2 +- drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c | 2 +- 8 files changed, 41 insertions(+), 12 deletions(-)
Signature · 1 line
1.9.1
PATCH v3 1/4 net: qualcomm: rmnet: Fix casting issues
Fix warnings which were reported when running with sparse (make C=1 CF=-D__CHECK_ENDIAN__)
drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c:81:15:
warning: cast to restricted __be16 drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c:271:37:
warning: incorrect type in assignment (different base types) expected unsigned short [unsigned] [usertype] pkt_len got restricted __be16 [usertype] <noident> drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c:287:29:
warning: incorrect type in assignment (different base types) expected unsigned short [unsigned] [usertype] pkt_len got restricted __be16 [usertype] <noident> drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c:310:22:
warning: cast to restricted __be16 drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c:319:13:
warning: cast to restricted __be16 drivers/net/ethernet/qualcomm/rmnet/rmnet_map_command.c:49:18:
warning: cast to restricted __be16 drivers/net/ethernet/qualcomm/rmnet/rmnet_map_command.c:50:18:
warning: cast to restricted __be32 drivers/net/ethernet/qualcomm/rmnet/rmnet_map_command.c:74:21:
warning: cast to restricted __be16
--- drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h +3 -3
@@ -23,8 +23,8 @@ struct rmnet_map_control_command {struct {u16 ip_family:2 ;u16 reserved:14 ; -u16 flow_control_seq_num; -u32 qos_id; +__be16 flow_control_seq_num; +__be32 qos_id; } flow_control;u8 data[0 ]; };
@@ -44,7 +44,7 @@ struct rmnet_map_header { u8 reserved_bit:1; u8 cd_bit:1;u8 mux_id; -u16 pkt_len; +__be16 pkt_len; }__aligned(1) ;struct rmnet_map_dl_csum_trailer {
Signature · 1 line
1.9.1
PATCH v3 2/4 net: qualcomm: rmnet: Update copyright year to 2018
In reply to Subash Abhinov Kasiviswanathan--- drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c | 2 +- drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h | 2 +- drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c | 2 +- drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h | 2 +- drivers/net/ethernet/qualcomm/rmnet/rmnet_map_command.c | 2 +- drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c | 2 +- drivers/net/ethernet/qualcomm/rmnet/rmnet_private.h | 2 +- drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-)
drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c +1 -1
@@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. +/* Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and
drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h +1 -1
@@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2014, 2016-2017 The Linux Foundation. All rights reserved. +/* Copyright (c) 2013-2014, 2016-2018 The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and
drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c +1 -1
@@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. +/* Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and
drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h +1 -1
@@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. +/* Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and
drivers/net/ethernet/qualcomm/rmnet/rmnet_map_command.c +1 -1
@@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. +/* Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and
drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c +1 -1
@@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. +/* Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and
drivers/net/ethernet/qualcomm/rmnet/rmnet_private.h +1 -1
@@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2014, 2016-2017 The Linux Foundation. All rights reserved. +/* Copyright (c) 2013-2014, 2016-2018 The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and
drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c +1 -1
@@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. +/* Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and
Signature · 1 line
1.9.1
PATCH v3 3/4 net: qualcomm: rmnet: Remove unnecessary device assignment
In reply to Subash Abhinov KasiviswanathanDevice of the de-aggregated skb is correctly assigned after inspecting the mux_id, so remove the assignment in rmnet_map_deaggregate().
--- drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c | 1 - 1 file changed, 1 deletion(-)
drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c +0 -1
@@ -323,7 +323,6 @@ struct sk_buff *rmnet_map_deaggregate(struct sk_buff *skb,if (!skbn)return NULL ; - skbn->dev = skb->dev;skb_reserve (skbn,RMNET_MAP_DEAGGR_HEADROOM );skb_put (skbn, packet_len);memcpy (skbn->data, skb->data, packet_len);
Signature · 1 line
1.9.1
PATCH v3 4/4 net: qualcomm: rmnet: Implement fill_info
In reply to Subash Abhinov KasiviswanathanThis is needed to query the mux_id and flags of a rmnet device.
--- drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+)
drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c +30 -0
@@ -331,6 +331,35 @@ static size_t rmnet_get_size(const struct net_device *dev)nla_total_size (sizeof (struct ifla_vlan_flags ));/* IFLA_VLAN_FLAGS */ } +static int rmnet_fill_info (struct sk_buff *skb,const struct net_device *dev) +{ +struct rmnet_priv *priv =netdev_priv (dev); +struct net_device *real_dev; +struct ifla_vlan_flags f; +struct rmnet_port *port; + + real_dev = priv->real_dev; + +if (!rmnet_is_real_dev_registered (real_dev)) +return -ENODEV ; + +if (nla_put_u16 (skb,IFLA_VLAN_ID , priv->mux_id)) + goto nla_put_failure; + + port =rmnet_get_port_rtnl (real_dev); + + f.flags = port->data_format; + f.mask = ~0 ; + +if (nla_put (skb,IFLA_VLAN_FLAGS ,sizeof (f), &f)) + goto nla_put_failure; + +return 0 ; + +nla_put_failure: +return -EMSGSIZE ; +} +struct rtnl_link_ops rmnet_link_ops__read_mostly = { .kind ="rmnet" , .maxtype = __IFLA_VLAN_MAX,
@@ -341,6 +370,7 @@ struct rtnl_link_ops rmnet_link_ops __read_mostly = { .dellink = rmnet_dellink, .get_size = rmnet_get_size, .changelink = rmnet_changelink, + .fill_info = rmnet_fill_info, };/* Needs either rcu_read_lock() or rtnl lock */
Signature · 1 line
1.9.1
David Miller
maintainerRe: [PATCH net-next v3 4/4] net: qualcomm: rmnet: Implement fill_info
From: Subash Abhinov Kasiviswanathan <[email protected]>
Date: Wed, 14 Mar 2018 13:01:04 -0600
drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c static size_t rmnet_get_size(const struct net_device *dev) · line 355
Quoted 10 lines
drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c +10
-0+if (nla_put_u16 (skb,IFLA_VLAN_ID , priv->mux_id)) + goto nla_put_failure; + + port =rmnet_get_port_rtnl (real_dev); + + f.flags = port->data_format; + f.mask = ~0 ; + +if (nla_put (skb,IFLA_VLAN_FLAGS ,sizeof (f), &f)) + goto nla_put_failure;
Please don't use VLAN netlink attributes to report rmnet device specific values.
Instead, please add appropriate new netlink attributes which clearly show that they are the rmnet mux_id and flags. You'll also need to provide UAPI definitions for these flag bits to go along with the attribute name.
Thanks.