Hi Guangbin,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url:
https://github.com/0day-ci/linux/commits/Guangbin-Huang/ethtool-add-suppo...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
177c92353be935db555d0d08729e871145ec698c
config: s390-allyesconfig (attached as .config)
compiler: s390-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
#
https://github.com/0day-ci/linux/commit/e5381d894cbf31bc070529a4db63c22d1...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Guangbin-Huang/ethtool-add-support-to-set-get-tx-copybreak-buf-size-and-rx-buf-len/20211012-220537
git checkout e5381d894cbf31bc070529a4db63c22d1b1dbcfa
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/s390/net/qeth_ethtool.c: In function 'qeth_get_ringparam':
drivers/s390/net/qeth_ethtool.c:149:63: error: expected declaration specifiers before
')' token
149 | struct netlink_ext_ack *extack))
| ^
drivers/s390/net/qeth_ethtool.c:165:1: error: expected '=', ',',
';', 'asm' or '__attribute__' before '{' token
165 | {
| ^
drivers/s390/net/qeth_ethtool.c:188:1: error: expected '=', ',',
';', 'asm' or '__attribute__' before '{' token
188 | {
| ^
drivers/s390/net/qeth_ethtool.c:201:1: error: expected '=', ',',
';', 'asm' or '__attribute__' before '{' token
201 | {
| ^
drivers/s390/net/qeth_ethtool.c:216:1: error: expected '=', ',',
';', 'asm' or '__attribute__' before '{' token
216 | {
| ^
drivers/s390/net/qeth_ethtool.c:251:1: error: expected '=', ',',
';', 'asm' or '__attribute__' before '{' token
251 | {
| ^
drivers/s390/net/qeth_ethtool.c:262:1: error: expected '=', ',',
';', 'asm' or '__attribute__' before '{' token
262 | {
| ^
drivers/s390/net/qeth_ethtool.c:277:1: error: expected '=', ',',
';', 'asm' or '__attribute__' before '{' token
277 | {
| ^
drivers/s390/net/qeth_ethtool.c:291:1: error: expected '=', ',',
';', 'asm' or '__attribute__' before '{' token
291 | {
| ^
drivers/s390/net/qeth_ethtool.c:310:1: error: expected '=', ',',
';', 'asm' or '__attribute__' before '{' token
310 | {
| ^
drivers/s390/net/qeth_ethtool.c:332:1: error: expected '=', ',',
';', 'asm' or '__attribute__' before '{' token
332 | {
| ^
drivers/s390/net/qeth_ethtool.c:429:1: error: expected '=', ',',
';', 'asm' or '__attribute__' before '{' token
429 | {
| ^
drivers/s390/net/qeth_ethtool.c:457:14: error: parameter 'qeth_ethtool_ops' is
initialized
457 | const struct ethtool_ops qeth_ethtool_ops = {
| ^~~~~~~~~~~
drivers/s390/net/qeth_ethtool.c:463:24: error: 'qeth_get_strings' undeclared
(first use in this function); did you mean 'qeth_get_stats64'?
463 | .get_strings = qeth_get_strings,
| ^~~~~~~~~~~~~~~~
| qeth_get_stats64
drivers/s390/net/qeth_ethtool.c:463:24: note: each undeclared identifier is reported
only once for each function it appears in
drivers/s390/net/qeth_ethtool.c:466:24: error: 'qeth_get_drvinfo' undeclared
(first use in this function); did you mean 'ethtool_drvinfo'?
466 | .get_drvinfo = qeth_get_drvinfo,
| ^~~~~~~~~~~~~~~~
| ethtool_drvinfo
drivers/s390/net/qeth_ethtool.c:467:25: error: 'qeth_get_channels' undeclared
(first use in this function); did you mean 'qeth_channel'?
467 | .get_channels = qeth_get_channels,
| ^~~~~~~~~~~~~~~~~
| qeth_channel
drivers/s390/net/qeth_ethtool.c:468:25: error: 'qeth_set_channels' undeclared
(first use in this function); did you mean 'qeth_channel'?
468 | .set_channels = qeth_set_channels,
| ^~~~~~~~~~~~~~~~~
| qeth_channel
drivers/s390/net/qeth_ethtool.c:469:24: error: 'qeth_get_ts_info' undeclared
(first use in this function); did you mean 'ethtool_ts_info'?
469 | .get_ts_info = qeth_get_ts_info,
| ^~~~~~~~~~~~~~~~
| ethtool_ts_info
drivers/s390/net/qeth_ethtool.c:470:24: error: 'qeth_get_tunable' undeclared
(first use in this function); did you mean 'frh_get_table'?
470 | .get_tunable = qeth_get_tunable,
| ^~~~~~~~~~~~~~~~
| frh_get_table
drivers/s390/net/qeth_ethtool.c:471:24: error: 'qeth_set_tunable' undeclared
(first use in this function); did you mean 'ethtool_tunable'?
471 | .set_tunable = qeth_set_tunable,
| ^~~~~~~~~~~~~~~~
| ethtool_tunable
drivers/s390/net/qeth_ethtool.c:472:35: error: 'qeth_get_per_queue_coalesce'
undeclared (first use in this function)
472 | .get_per_queue_coalesce = qeth_get_per_queue_coalesce,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/s390/net/qeth_ethtool.c:473:35: error: 'qeth_set_per_queue_coalesce'
undeclared (first use in this function)
473 | .set_per_queue_coalesce = qeth_set_per_queue_coalesce,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/s390/net/qeth_ethtool.c:474:31: error: 'qeth_get_link_ksettings'
undeclared (first use in this function); did you mean 'ethtool_link_ksettings'?
474 | .get_link_ksettings = qeth_get_link_ksettings,
| ^~~~~~~~~~~~~~~~~~~~~~~
| ethtool_link_ksettings
drivers/s390/net/qeth_ethtool.c:146:13: error: old-style parameter declarations in
prototyped function definition
146 | static void qeth_get_ringparam(struct net_device *dev,
| ^~~~~~~~~~~~~~~~~~
drivers/s390/net/qeth_ethtool.c:476: error: expected '{' at end of input
At top level:
> drivers/s390/net/qeth_ethtool.c:146:13: error:
'qeth_get_ringparam' defined but not used [-Werror=unused-function]
146
| static void qeth_get_ringparam(struct net_device *dev,
| ^~~~~~~~~~~~~~~~~~
> drivers/s390/net/qeth_ethtool.c:77:13: error:
'qeth_add_stat_strings' defined but not used [-Werror=unused-function]
77 | static void qeth_add_stat_strings(u8 **data, const char *prefix,
| ^~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
vim +/qeth_get_ringparam +146 drivers/s390/net/qeth_ethtool.c
b0abc4f5df76ce Julian Wiedmann 2019-02-15 76
b0abc4f5df76ce Julian Wiedmann 2019-02-15 @77 static void qeth_add_stat_strings(u8
**data, const char *prefix,
b0abc4f5df76ce Julian Wiedmann 2019-02-15 78 const struct qeth_stats stats[],
b0abc4f5df76ce Julian Wiedmann 2019-02-15 79 unsigned int size)
b0abc4f5df76ce Julian Wiedmann 2019-02-15 80 {
b0abc4f5df76ce Julian Wiedmann 2019-02-15 81 unsigned int i;
b0abc4f5df76ce Julian Wiedmann 2019-02-15 82
c0a0186630fb0e Julian Wiedmann 2021-06-11 83 for (i = 0; i < size; i++)
c0a0186630fb0e Julian Wiedmann 2021-06-11 84 ethtool_sprintf(data, "%s%s",
prefix, stats[i].name);
b0abc4f5df76ce Julian Wiedmann 2019-02-15 85 }
b0abc4f5df76ce Julian Wiedmann 2019-02-15 86
d896ac62d01604 Julian Wiedmann 2019-02-15 87 static int qeth_get_sset_count(struct
net_device *dev, int stringset)
d896ac62d01604 Julian Wiedmann 2019-02-15 88 {
b0abc4f5df76ce Julian Wiedmann 2019-02-15 89 struct qeth_card *card =
dev->ml_priv;
b0abc4f5df76ce Julian Wiedmann 2019-02-15 90
d896ac62d01604 Julian Wiedmann 2019-02-15 91 switch (stringset) {
d896ac62d01604 Julian Wiedmann 2019-02-15 92 case ETH_SS_STATS:
b0abc4f5df76ce Julian Wiedmann 2019-02-15 93 return CARD_STATS_LEN +
b0abc4f5df76ce Julian Wiedmann 2019-02-15 94 card->qdio.no_out_queues *
TXQ_STATS_LEN;
d896ac62d01604 Julian Wiedmann 2019-02-15 95 default:
d896ac62d01604 Julian Wiedmann 2019-02-15 96 return -EINVAL;
d896ac62d01604 Julian Wiedmann 2019-02-15 97 }
d896ac62d01604 Julian Wiedmann 2019-02-15 98 }
d896ac62d01604 Julian Wiedmann 2019-02-15 99
d896ac62d01604 Julian Wiedmann 2019-02-15 100 static void qeth_get_ethtool_stats(struct
net_device *dev,
d896ac62d01604 Julian Wiedmann 2019-02-15 101 struct ethtool_stats *stats, u64
*data)
d896ac62d01604 Julian Wiedmann 2019-02-15 102 {
d896ac62d01604 Julian Wiedmann 2019-02-15 103 struct qeth_card *card =
dev->ml_priv;
b0abc4f5df76ce Julian Wiedmann 2019-02-15 104 unsigned int i;
d896ac62d01604 Julian Wiedmann 2019-02-15 105
b0abc4f5df76ce Julian Wiedmann 2019-02-15 106 qeth_add_stat_data(&data,
&card->stats, card_stats, CARD_STATS_LEN);
b0abc4f5df76ce Julian Wiedmann 2019-02-15 107 for (i = 0; i <
card->qdio.no_out_queues; i++)
b0abc4f5df76ce Julian Wiedmann 2019-02-15 108 qeth_add_stat_data(&data,
&card->qdio.out_qs[i]->stats,
b0abc4f5df76ce Julian Wiedmann 2019-02-15 109 txq_stats, TXQ_STATS_LEN);
d896ac62d01604 Julian Wiedmann 2019-02-15 110 }
d896ac62d01604 Julian Wiedmann 2019-02-15 111
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 112 static void __qeth_set_coalesce(struct
net_device *dev,
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 113 struct qeth_qdio_out_q *queue,
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 114 struct ethtool_coalesce *coal)
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 115 {
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 116 WRITE_ONCE(queue->coalesce_usecs,
coal->tx_coalesce_usecs);
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 117
WRITE_ONCE(queue->max_coalesced_frames, coal->tx_max_coalesced_frames);
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 118
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 119 if (coal->tx_coalesce_usecs
&&
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 120 netif_running(dev) &&
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 121 !qeth_out_queue_is_empty(queue))
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 122 qeth_tx_arm_timer(queue,
coal->tx_coalesce_usecs);
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 123 }
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 124
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 125 static int qeth_set_coalesce(struct
net_device *dev,
f3ccfda1931977 Yufeng Mo 2021-08-20 126 struct ethtool_coalesce *coal,
f3ccfda1931977 Yufeng Mo 2021-08-20 127 struct kernel_ethtool_coalesce
*kernel_coal,
f3ccfda1931977 Yufeng Mo 2021-08-20 128 struct netlink_ext_ack *extack)
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 129 {
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 130 struct qeth_card *card =
dev->ml_priv;
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 131 struct qeth_qdio_out_q *queue;
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 132 unsigned int i;
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 133
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 134 if (!IS_IQD(card))
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 135 return -EOPNOTSUPP;
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 136
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 137 if (!coal->tx_coalesce_usecs
&& !coal->tx_max_coalesced_frames)
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 138 return -EINVAL;
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 139
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 140 qeth_for_each_output_queue(card, queue,
i)
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 141 __qeth_set_coalesce(dev, queue, coal);
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 142
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 143 return 0;
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 144 }
ee1e52d1e4bb91 Julian Wiedmann 2020-03-25 145
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 @146 static void qeth_get_ringparam(struct
net_device *dev,
e5381d894cbf31 Hao Chen 2021-10-12 147 struct ethtool_ringparam
*param,
e5381d894cbf31 Hao Chen 2021-10-12 148 struct ethtool_ringparam_ext
*param_ext,
e5381d894cbf31 Hao Chen 2021-10-12 149 struct netlink_ext_ack
*extack))
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 150 {
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 151 struct qeth_card *card =
dev->ml_priv;
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 152
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 153 param->rx_max_pending =
QDIO_MAX_BUFFERS_PER_Q;
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 154 param->rx_mini_max_pending = 0;
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 155 param->rx_jumbo_max_pending = 0;
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 156 param->tx_max_pending =
QDIO_MAX_BUFFERS_PER_Q;
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 157
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 158 param->rx_pending =
card->qdio.in_buf_pool.buf_count;
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 159 param->rx_mini_pending = 0;
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 160 param->rx_jumbo_pending = 0;
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 161 param->tx_pending =
QDIO_MAX_BUFFERS_PER_Q;
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 162 }
1b4d5e1c617e7c Julian Wiedmann 2019-02-15 163
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org