Hi Jian,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on net-next/master]
url:
https://github.com/0day-ci/linux/commits/Jian-Shen/net-extend-netdev-feat...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
5e437416ff66981d8154687cfdf7de50b1d82bfc
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
#
https://github.com/0day-ci/linux/commit/378137e43ebe9f450b0ab5be3b32ec429...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Jian-Shen/net-extend-netdev-features/20210710-174828
git checkout 378137e43ebe9f450b0ab5be3b32ec4295a6806f
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/skbuff.h:32,
from include/linux/if_ether.h:19,
from include/linux/etherdevice.h:20,
from drivers/net/ethernet/google/gve/gve_main.c:8:
include/linux/netdev_features.h: In function 'netdev_features_empty':
include/linux/netdev_features.h:334:11: error: 'return' with a value, in
function returning void [-Werror=return-type]
334 | return false;
| ^~~~~
include/linux/netdev_features.h:328:20: note: declared here
328 | static inline void netdev_features_empty(netdev_features_t *src)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/netdev_features.h:336:9: error: 'return' with a value, in
function returning void [-Werror=return-type]
336 | return true;
| ^~~~
include/linux/netdev_features.h:328:20: note: declared here
328 | static inline void netdev_features_empty(netdev_features_t *src)
| ^~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/etherdevice.h:21,
from drivers/net/ethernet/google/gve/gve_main.c:8:
include/linux/netdevice.h: In function 'netif_elide_gro':
include/linux/netdevice.h:2254:22: error: invalid operands to binary & (have
'const netdev_features_t *' {aka 'const long long unsigned int *'} and
'long long unsigned int')
2254 | if (!(dev->features & NETIF_F_GRO) || dev->xdp_prog)
| ~~~ ^
| |
| const netdev_features_t * {aka const long long unsigned int *}
drivers/net/ethernet/google/gve/gve_main.c: In function 'gve_set_features':
> drivers/net/ethernet/google/gve/gve_main.c:1116:42: warning:
initialization of 'netdev_features_t' {aka 'const long long unsigned int'}
from 'netdev_features_t *' {aka 'long long unsigned int *'} makes integer
from pointer without a cast [-Wint-conversion]
1116 | const netdev_features_t
orig_features = netdev->features;
| ^~~~~~
drivers/net/ethernet/google/gve/gve_main.c:1120:24: error: invalid operands to binary
& (have 'netdev_features_t *' {aka 'long long unsigned int *'} and
'long long unsigned int')
1120 | if ((netdev->features & NETIF_F_LRO) != (features & NETIF_F_LRO))
{
| ~~~~~~ ^
| |
| netdev_features_t * {aka long long unsigned int *}
drivers/net/ethernet/google/gve/gve_main.c:1121:20: error: assignment to expression
with array type
1121 | netdev->features ^= NETIF_F_LRO;
| ^~
drivers/net/ethernet/google/gve/gve_main.c:1143:19: error: assignment to expression
with array type
1143 | netdev->features = orig_features;
| ^
drivers/net/ethernet/google/gve/gve_main.c: At top level:
drivers/net/ethernet/google/gve/gve_main.c:1155:22: error: initialization of 'int
(*)(struct net_device *, netdev_features_t *)' {aka 'int (*)(struct net_device *,
long long unsigned int *)'} from incompatible pointer type 'int (*)(struct
net_device *, netdev_features_t)' {aka 'int (*)(struct net_device *, long long
unsigned int)'} [-Werror=incompatible-pointer-types]
1155 | .ndo_set_features = gve_set_features,
| ^~~~~~~~~~~~~~~~
drivers/net/ethernet/google/gve/gve_main.c:1155:22: note: (near initialization for
'gve_netdev_ops.ndo_set_features')
drivers/net/ethernet/google/gve/gve_main.c: In function 'gve_probe':
drivers/net/ethernet/google/gve/gve_main.c:1527:19: error: assignment to expression
with array type
1527 | dev->hw_features = NETIF_F_HIGHDMA;
| ^
drivers/net/ethernet/google/gve/gve_main.c:1528:19: error: assignment to expression
with array type
1528 | dev->hw_features |= NETIF_F_SG;
| ^~
drivers/net/ethernet/google/gve/gve_main.c:1529:19: error: assignment to expression
with array type
1529 | dev->hw_features |= NETIF_F_HW_CSUM;
| ^~
drivers/net/ethernet/google/gve/gve_main.c:1530:19: error: assignment to expression
with array type
1530 | dev->hw_features |= NETIF_F_TSO;
| ^~
drivers/net/ethernet/google/gve/gve_main.c:1531:19: error: assignment to expression
with array type
1531 | dev->hw_features |= NETIF_F_TSO6;
| ^~
drivers/net/ethernet/google/gve/gve_main.c:1532:19: error: assignment to expression
with array type
1532 | dev->hw_features |= NETIF_F_TSO_ECN;
| ^~
drivers/net/ethernet/google/gve/gve_main.c:1533:19: error: assignment to expression
with array type
1533 | dev->hw_features |= NETIF_F_RXCSUM;
| ^~
drivers/net/ethernet/google/gve/gve_main.c:1534:19: error: assignment to expression
with array type
1534 | dev->hw_features |= NETIF_F_RXHASH;
| ^~
drivers/net/ethernet/google/gve/gve_main.c:1535:16: error: assignment to expression
with array type
1535 | dev->features = dev->hw_features;
| ^
cc1: some warnings being treated as errors
--
In file included from include/linux/skbuff.h:32,
from include/net/net_namespace.h:39,
from include/linux/netdevice.h:37,
from drivers/net/ethernet/google/gve/gve.h:11,
from drivers/net/ethernet/google/gve/gve_rx.c:7:
include/linux/netdev_features.h: In function 'netdev_features_empty':
include/linux/netdev_features.h:334:11: error: 'return' with a value, in
function returning void [-Werror=return-type]
334 | return false;
| ^~~~~
include/linux/netdev_features.h:328:20: note: declared here
328 | static inline void netdev_features_empty(netdev_features_t *src)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/netdev_features.h:336:9: error: 'return' with a value, in
function returning void [-Werror=return-type]
336 | return true;
| ^~~~
include/linux/netdev_features.h:328:20: note: declared here
328 | static inline void netdev_features_empty(netdev_features_t *src)
| ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/net/ethernet/google/gve/gve.h:11,
from drivers/net/ethernet/google/gve/gve_rx.c:7:
include/linux/netdevice.h: In function 'netif_elide_gro':
include/linux/netdevice.h:2254:22: error: invalid operands to binary & (have
'const netdev_features_t *' {aka 'const long long unsigned int *'} and
'long long unsigned int')
2254 | if (!(dev->features & NETIF_F_GRO) || dev->xdp_prog)
| ~~~ ^
| |
| const netdev_features_t * {aka const long long unsigned int *}
drivers/net/ethernet/google/gve/gve_rx.c: In function 'gve_rx_poll':
> drivers/net/ethernet/google/gve/gve_rx.c:594:7: warning:
assignment to 'netdev_features_t' {aka 'long long unsigned int'} from
'netdev_features_t *' {aka 'long long unsigned int *'} makes integer from
pointer without a cast [-Wint-conversion]
594 | feat =
block->napi.dev->features;
| ^
cc1: some warnings being treated as errors
--
In file included from include/linux/skbuff.h:32,
from include/net/net_namespace.h:39,
from include/linux/netdevice.h:37,
from drivers/net/ethernet/google/gve/gve.h:11,
from drivers/net/ethernet/google/gve/gve_rx_dqo.c:7:
include/linux/netdev_features.h: In function 'netdev_features_empty':
include/linux/netdev_features.h:334:11: error: 'return' with a value, in
function returning void [-Werror=return-type]
334 | return false;
| ^~~~~
include/linux/netdev_features.h:328:20: note: declared here
328 | static inline void netdev_features_empty(netdev_features_t *src)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/netdev_features.h:336:9: error: 'return' with a value, in
function returning void [-Werror=return-type]
336 | return true;
| ^~~~
include/linux/netdev_features.h:328:20: note: declared here
328 | static inline void netdev_features_empty(netdev_features_t *src)
| ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/net/ethernet/google/gve/gve.h:11,
from drivers/net/ethernet/google/gve/gve_rx_dqo.c:7:
include/linux/netdevice.h: In function 'netif_elide_gro':
include/linux/netdevice.h:2254:22: error: invalid operands to binary & (have
'const netdev_features_t *' {aka 'const long long unsigned int *'} and
'long long unsigned int')
2254 | if (!(dev->features & NETIF_F_GRO) || dev->xdp_prog)
| ~~~ ^
| |
| const netdev_features_t * {aka const long long unsigned int *}
drivers/net/ethernet/google/gve/gve_rx_dqo.c: In function 'gve_rx_poll_dqo':
> drivers/net/ethernet/google/gve/gve_rx_dqo.c:673:27: warning:
initialization of 'netdev_features_t' {aka 'long long unsigned int'} from
'netdev_features_t *' {aka 'long long unsigned int *'} makes integer from
pointer without a cast [-Wint-conversion]
673 | netdev_features_t feat =
napi->dev->features;
| ^~~~
cc1: some warnings being treated as errors
--
In file included from include/linux/skbuff.h:32,
from include/linux/if_ether.h:19,
from include/linux/etherdevice.h:20,
from drivers/net/ethernet/huawei/hinic/hinic_main.c:14:
include/linux/netdev_features.h: In function 'netdev_features_empty':
include/linux/netdev_features.h:334:11: error: 'return' with a value, in
function returning void [-Werror=return-type]
334 | return false;
| ^~~~~
include/linux/netdev_features.h:328:20: note: declared here
328 | static inline void netdev_features_empty(netdev_features_t *src)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/netdev_features.h:336:9: error: 'return' with a value, in
function returning void [-Werror=return-type]
336 | return true;
| ^~~~
include/linux/netdev_features.h:328:20: note: declared here
328 | static inline void netdev_features_empty(netdev_features_t *src)
| ^~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/etherdevice.h:21,
from drivers/net/ethernet/huawei/hinic/hinic_main.c:14:
include/linux/netdevice.h: In function 'netif_elide_gro':
include/linux/netdevice.h:2254:22: error: invalid operands to binary & (have
'const netdev_features_t *' {aka 'const long long unsigned int *'} and
'long long unsigned int')
2254 | if (!(dev->features & NETIF_F_GRO) || dev->xdp_prog)
| ~~~ ^
| |
| const netdev_features_t * {aka const long long unsigned int *}
drivers/net/ethernet/huawei/hinic/hinic_main.c: In function
'hinic_fix_features':
drivers/net/ethernet/huawei/hinic/hinic_main.c:897:16: error: subscripted value is
neither array nor pointer nor vector
897 | if (!(features[0] & NETIF_F_RXCSUM)) {
| ^
drivers/net/ethernet/huawei/hinic/hinic_main.c:899:11: error: subscripted value is
neither array nor pointer nor vector
899 | features[0] &= ~NETIF_F_LRO;
| ^
> drivers/net/ethernet/huawei/hinic/hinic_main.c:892:29: warning:
parameter 'features' set but not used [-Wunused-but-set-parameter]
892
| netdev_features_t features)
| ~~~~~~~~~~~~~~~~~~^~~~~~~~
drivers/net/ethernet/huawei/hinic/hinic_main.c: At top level:
drivers/net/ethernet/huawei/hinic/hinic_main.c:915:22: error: initialization of
'void (*)(struct net_device *, netdev_features_t *)' {aka 'void (*)(struct
net_device *, long long unsigned int *)'} from incompatible pointer type 'void
(*)(struct net_device *, netdev_features_t)' {aka 'void (*)(struct net_device *,
long long unsigned int)'} [-Werror=incompatible-pointer-types]
915 | .ndo_fix_features = hinic_fix_features,
| ^~~~~~~~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic/hinic_main.c:915:22: note: (near initialization for
'hinic_netdev_ops.ndo_fix_features')
drivers/net/ethernet/huawei/hinic/hinic_main.c:938:22: error: initialization of
'void (*)(struct net_device *, netdev_features_t *)' {aka 'void (*)(struct
net_device *, long long unsigned int *)'} from incompatible pointer type 'void
(*)(struct net_device *, netdev_features_t)' {aka 'void (*)(struct net_device *,
long long unsigned int)'} [-Werror=incompatible-pointer-types]
938 | .ndo_fix_features = hinic_fix_features,
| ^~~~~~~~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic/hinic_main.c:938:22: note: (near initialization for
'hinicvf_netdev_ops.ndo_fix_features')
drivers/net/ethernet/huawei/hinic/hinic_main.c: In function 'set_features':
drivers/net/ethernet/huawei/hinic/hinic_main.c:1126:25: error: expected ';'
before 'return'
1126 | failed_features)
| ^
| ;
1127 | return -EIO;
| ~~~~~~
cc1: some warnings being treated as errors
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for PHY_SPARX5_SERDES
Depends on (ARCH_SPARX5 || COMPILE_TEST && OF && HAS_IOMEM
Selected by
- SPARX5_SWITCH && NETDEVICES && ETHERNET &&
NET_VENDOR_MICROCHIP && NET_SWITCHDEV && HAS_IOMEM
vim +1116 drivers/net/ethernet/google/gve/gve_main.c
f5cedc84a30d2d Catherine Sullivan 2019-07-01 1112
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1113 static int gve_set_features(struct
net_device *netdev,
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1114 netdev_features_t features)
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1115 {
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 @1116 const netdev_features_t orig_features
= netdev->features;
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1117 struct gve_priv *priv =
netdev_priv(netdev);
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1118 int err;
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1119
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1120 if ((netdev->features &
NETIF_F_LRO) != (features & NETIF_F_LRO)) {
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1121 netdev->features ^= NETIF_F_LRO;
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1122 if (netif_carrier_ok(netdev)) {
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1123 /* To make this process as simple
as possible we
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1124 * teardown the device, set the new
configuration,
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1125 * and then bring the device up
again.
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1126 */
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1127 err = gve_close(netdev);
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1128 /* We have already tried to reset
in close, just fail
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1129 * at this point.
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1130 */
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1131 if (err)
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1132 goto err;
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1133
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1134 err = gve_open(netdev);
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1135 if (err)
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1136 goto err;
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1137 }
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1138 }
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1139
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1140 return 0;
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1141 err:
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1142 /* Reverts the change on error. */
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1143 netdev->features = orig_features;
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1144 netif_err(priv, drv, netdev,
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1145 "Set features failed! !!!
DISABLING ALL QUEUES !!!\n");
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1146 return err;
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1147 }
5e8c5adf95f8a5 Bailey Forrest 2021-06-24 1148
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org