[android-common:android-4.4-p 19339/21527] net/xfrm/xfrm_compat.c:126:16: warning: no previous declaration for '__nla_reserve_64bit'
by kernel test robot
tree: https://android.googlesource.com/kernel/common android-4.4-p
head: 0875b76a11e991c1b5682261ed8fd82002ab7975
commit: 947341f3907b8d0827cc2aa3b9e53de776cb402e [19339/21527] BACKPORT: xfrm/compat: Add 64=>32-bit messages translator
config: x86_64-randconfig-a015-20211118 (attached as .config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build):
git remote add android-common https://android.googlesource.com/kernel/common
git fetch --no-tags android-common android-4.4-p
git checkout 947341f3907b8d0827cc2aa3b9e53de776cb402e
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
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 >>):
>> net/xfrm/xfrm_compat.c:126:16: warning: no previous declaration for '__nla_reserve_64bit' [-Wmissing-declarations]
struct nlattr *__nla_reserve_64bit(struct sk_buff *skb, int attrtype,
^~~~~~~~~~~~~~~~~~~
vim +/__nla_reserve_64bit +126 net/xfrm/xfrm_compat.c
125
> 126 struct nlattr *__nla_reserve_64bit(struct sk_buff *skb, int attrtype,
127 int attrlen, int padattr)
128 {
129 nla_align_64bit(skb, padattr);
130
131 return __nla_reserve(skb, attrtype, attrlen);
132 }
133
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
Re: [PATCH v5 4/8] leds: trigger: netdev: rename and expose NETDEV trigger enum and struct
by kernel test robot
Hi Ansuel,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net/master]
[also build test ERROR on linus/master v5.16-rc2 next-20211118]
[cannot apply to pavel-leds/for-next robh/for-next net-next/master]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Ansuel-Smith/Adds-support-for-PH...
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 5833291ab6de9c3e2374336b51c814e515e8f3a5
config: arc-randconfig-r043-20211115 (attached as .config)
compiler: arceb-elf-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/4aa7005c8428f867be20ecd0afe4bc2cc...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Ansuel-Smith/Adds-support-for-PHY-LEDs-with-offload-triggers/20211112-233807
git checkout 4aa7005c8428f867be20ecd0afe4bc2ccdf6da4a
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash drivers/leds/trigger/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
>> drivers/leds/trigger/ledtrig-netdev.c:45:39: warning: 'struct led_netdev_data' declared inside parameter list will not be visible outside of this definition or declaration
45 | static void set_baseline_state(struct led_netdev_data *trigger_data)
| ^~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c: In function 'set_baseline_state':
>> drivers/leds/trigger/ledtrig-netdev.c:48:53: error: invalid use of undefined type 'struct led_netdev_data'
48 | struct led_classdev *led_cdev = trigger_data->led_cdev;
| ^~
drivers/leds/trigger/ledtrig-netdev.c:56:26: error: invalid use of undefined type 'struct led_netdev_data'
56 | if (!trigger_data->carrier_link_up) {
| ^~
>> drivers/leds/trigger/ledtrig-netdev.c:59:30: error: 'TRIGGER_NETDEV_LINK' undeclared (first use in this function)
59 | if (test_bit(TRIGGER_NETDEV_LINK, &trigger_data->mode))
| ^~~~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:59:30: note: each undeclared identifier is reported only once for each function it appears in
drivers/leds/trigger/ledtrig-netdev.c:59:64: error: invalid use of undefined type 'struct led_netdev_data'
59 | if (test_bit(TRIGGER_NETDEV_LINK, &trigger_data->mode))
| ^~
>> drivers/leds/trigger/ledtrig-netdev.c:68:30: error: 'TRIGGER_NETDEV_TX' undeclared (first use in this function)
68 | if (test_bit(TRIGGER_NETDEV_TX, &trigger_data->mode) ||
| ^~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:68:62: error: invalid use of undefined type 'struct led_netdev_data'
68 | if (test_bit(TRIGGER_NETDEV_TX, &trigger_data->mode) ||
| ^~
>> drivers/leds/trigger/ledtrig-netdev.c:69:30: error: 'TRIGGER_NETDEV_RX' undeclared (first use in this function)
69 | test_bit(TRIGGER_NETDEV_RX, &trigger_data->mode))
| ^~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:69:62: error: invalid use of undefined type 'struct led_netdev_data'
69 | test_bit(TRIGGER_NETDEV_RX, &trigger_data->mode))
| ^~
drivers/leds/trigger/ledtrig-netdev.c:70:60: error: invalid use of undefined type 'struct led_netdev_data'
70 | schedule_delayed_work(&trigger_data->work, 0);
| ^~
drivers/leds/trigger/ledtrig-netdev.c: In function 'device_name_show':
drivers/leds/trigger/ledtrig-netdev.c:80:35: error: invalid use of undefined type 'struct led_netdev_data'
80 | spin_lock_bh(&trigger_data->lock);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:81:48: error: invalid use of undefined type 'struct led_netdev_data'
81 | len = sprintf(buf, "%s\n", trigger_data->device_name);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:82:37: error: invalid use of undefined type 'struct led_netdev_data'
82 | spin_unlock_bh(&trigger_data->lock);
| ^~
drivers/leds/trigger/ledtrig-netdev.c: In function 'device_name_store':
drivers/leds/trigger/ledtrig-netdev.c:96:47: error: invalid use of undefined type 'struct led_netdev_data'
96 | cancel_delayed_work_sync(&trigger_data->work);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:98:35: error: invalid use of undefined type 'struct led_netdev_data'
98 | spin_lock_bh(&trigger_data->lock);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:100:25: error: invalid use of undefined type 'struct led_netdev_data'
100 | if (trigger_data->net_dev) {
| ^~
drivers/leds/trigger/ledtrig-netdev.c:101:37: error: invalid use of undefined type 'struct led_netdev_data'
101 | dev_put(trigger_data->net_dev);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:102:29: error: invalid use of undefined type 'struct led_netdev_data'
102 | trigger_data->net_dev = NULL;
| ^~
drivers/leds/trigger/ledtrig-netdev.c:105:28: error: invalid use of undefined type 'struct led_netdev_data'
105 | memcpy(trigger_data->device_name, buf, size);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:106:21: error: invalid use of undefined type 'struct led_netdev_data'
106 | trigger_data->device_name[size] = 0;
| ^~
drivers/leds/trigger/ledtrig-netdev.c:107:37: error: invalid use of undefined type 'struct led_netdev_data'
107 | if (size > 0 && trigger_data->device_name[size - 1] == '\n')
| ^~
drivers/leds/trigger/ledtrig-netdev.c:108:29: error: invalid use of undefined type 'struct led_netdev_data'
108 | trigger_data->device_name[size - 1] = 0;
| ^~
drivers/leds/trigger/ledtrig-netdev.c:110:25: error: invalid use of undefined type 'struct led_netdev_data'
110 | if (trigger_data->device_name[0] != 0)
| ^~
drivers/leds/trigger/ledtrig-netdev.c:111:29: error: invalid use of undefined type 'struct led_netdev_data'
111 | trigger_data->net_dev =
| ^~
drivers/leds/trigger/ledtrig-netdev.c:112:60: error: invalid use of undefined type 'struct led_netdev_data'
112 | dev_get_by_name(&init_net, trigger_data->device_name);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:114:21: error: invalid use of undefined type 'struct led_netdev_data'
114 | trigger_data->carrier_link_up = false;
| ^~
drivers/leds/trigger/ledtrig-netdev.c:115:25: error: invalid use of undefined type 'struct led_netdev_data'
115 | if (trigger_data->net_dev != NULL)
| ^~
drivers/leds/trigger/ledtrig-netdev.c:116:29: error: invalid use of undefined type 'struct led_netdev_data'
116 | trigger_data->carrier_link_up = netif_carrier_ok(trigger_data->net_dev);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:116:78: error: invalid use of undefined type 'struct led_netdev_data'
116 | trigger_data->carrier_link_up = netif_carrier_ok(trigger_data->net_dev);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:118:21: error: invalid use of undefined type 'struct led_netdev_data'
118 | trigger_data->last_activity = 0;
| ^~
>> drivers/leds/trigger/ledtrig-netdev.c:120:28: error: passing argument 1 of 'set_baseline_state' from incompatible pointer type [-Werror=incompatible-pointer-types]
120 | set_baseline_state(trigger_data);
| ^~~~~~~~~~~~
| |
| struct led_netdev_data *
drivers/leds/trigger/ledtrig-netdev.c:45:56: note: expected 'struct led_netdev_data *' but argument is of type 'struct led_netdev_data *'
45 | static void set_baseline_state(struct led_netdev_data *trigger_data)
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:121:37: error: invalid use of undefined type 'struct led_netdev_data'
121 | spin_unlock_bh(&trigger_data->lock);
| ^~
drivers/leds/trigger/ledtrig-netdev.c: In function 'netdev_led_attr_show':
drivers/leds/trigger/ledtrig-netdev.c:136:23: error: 'TRIGGER_NETDEV_LINK' undeclared (first use in this function)
136 | bit = TRIGGER_NETDEV_LINK;
| ^~~~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:139:23: error: 'TRIGGER_NETDEV_TX' undeclared (first use in this function)
139 | bit = TRIGGER_NETDEV_TX;
| ^~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:142:23: error: 'TRIGGER_NETDEV_RX' undeclared (first use in this function)
142 | bit = TRIGGER_NETDEV_RX;
| ^~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:148:64: error: invalid use of undefined type 'struct led_netdev_data'
148 | return sprintf(buf, "%u\n", test_bit(bit, &trigger_data->mode));
| ^~
drivers/leds/trigger/ledtrig-netdev.c: In function 'netdev_led_attr_store':
drivers/leds/trigger/ledtrig-netdev.c:165:23: error: 'TRIGGER_NETDEV_LINK' undeclared (first use in this function)
165 | bit = TRIGGER_NETDEV_LINK;
| ^~~~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:168:23: error: 'TRIGGER_NETDEV_TX' undeclared (first use in this function)
168 | bit = TRIGGER_NETDEV_TX;
| ^~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:171:23: error: 'TRIGGER_NETDEV_RX' undeclared (first use in this function)
171 | bit = TRIGGER_NETDEV_RX;
| ^~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:177:47: error: invalid use of undefined type 'struct led_netdev_data'
177 | cancel_delayed_work_sync(&trigger_data->work);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:180:43: error: invalid use of undefined type 'struct led_netdev_data'
180 | set_bit(bit, &trigger_data->mode);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:182:45: error: invalid use of undefined type 'struct led_netdev_data'
182 | clear_bit(bit, &trigger_data->mode);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:184:28: error: passing argument 1 of 'set_baseline_state' from incompatible pointer type [-Werror=incompatible-pointer-types]
184 | set_baseline_state(trigger_data);
| ^~~~~~~~~~~~
| |
| struct led_netdev_data *
drivers/leds/trigger/ledtrig-netdev.c:45:56: note: expected 'struct led_netdev_data *' but argument is of type 'struct led_netdev_data *'
45 | static void set_baseline_state(struct led_netdev_data *trigger_data)
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c: In function 'interval_show':
drivers/leds/trigger/ledtrig-netdev.c:237:66: error: invalid use of undefined type 'struct led_netdev_data'
237 | jiffies_to_msecs(atomic_read(&trigger_data->interval)));
| ^~
drivers/leds/trigger/ledtrig-netdev.c: In function 'interval_store':
drivers/leds/trigger/ledtrig-netdev.c:254:55: error: invalid use of undefined type 'struct led_netdev_data'
254 | cancel_delayed_work_sync(&trigger_data->work);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:256:41: error: invalid use of undefined type 'struct led_netdev_data'
256 | atomic_set(&trigger_data->interval, msecs_to_jiffies(value));
| ^~
drivers/leds/trigger/ledtrig-netdev.c:257:36: error: passing argument 1 of 'set_baseline_state' from incompatible pointer type [-Werror=incompatible-pointer-types]
257 | set_baseline_state(trigger_data); /* resets timer */
| ^~~~~~~~~~~~
| |
| struct led_netdev_data *
drivers/leds/trigger/ledtrig-netdev.c:45:56: note: expected 'struct led_netdev_data *' but argument is of type 'struct led_netdev_data *'
45 | static void set_baseline_state(struct led_netdev_data *trigger_data)
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
In file included from arch/arc/include/asm/cmpxchg.h:9,
from arch/arc/include/asm/atomic.h:13,
from include/linux/atomic.h:7,
from drivers/leds/trigger/ledtrig-netdev.c:13:
drivers/leds/trigger/ledtrig-netdev.c: In function 'netdev_trig_notify':
>> include/linux/container_of.h:19:54: error: invalid use of undefined type 'struct led_netdev_data'
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~
include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert'
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
include/linux/container_of.h:19:23: note: in expansion of macro '__same_type'
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:281:17: note: in expansion of macro 'container_of'
281 | container_of(nb, struct led_netdev_data, notifier);
| ^~~~~~~~~~~~
>> include/linux/compiler_types.h:276:27: error: expression in static assertion is not an integer
276 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert'
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
include/linux/container_of.h:19:23: note: in expansion of macro '__same_type'
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:281:17: note: in expansion of macro 'container_of'
281 | container_of(nb, struct led_netdev_data, notifier);
| ^~~~~~~~~~~~
In file included from <command-line>:
>> include/linux/compiler_types.h:140:41: error: invalid use of undefined type 'struct led_netdev_data'
140 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/linux/stddef.h:17:33: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/container_of.h:22:28: note: in expansion of macro 'offsetof'
22 | ((type *)(__mptr - offsetof(type, member))); })
| ^~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:281:17: note: in expansion of macro 'container_of'
281 | container_of(nb, struct led_netdev_data, notifier);
| ^~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:288:34: error: invalid use of undefined type 'struct led_netdev_data'
288 | if (!(dev == trigger_data->net_dev ||
| ^~
drivers/leds/trigger/ledtrig-netdev.c:289:75: error: invalid use of undefined type 'struct led_netdev_data'
289 | (evt == NETDEV_CHANGENAME && !strcmp(dev->name, trigger_data->device_name)) ||
| ^~
drivers/leds/trigger/ledtrig-netdev.c:290:73: error: invalid use of undefined type 'struct led_netdev_data'
290 | (evt == NETDEV_REGISTER && !strcmp(dev->name, trigger_data->device_name))))
| ^~
drivers/leds/trigger/ledtrig-netdev.c:293:47: error: invalid use of undefined type 'struct led_netdev_data'
293 | cancel_delayed_work_sync(&trigger_data->work);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:295:35: error: invalid use of undefined type 'struct led_netdev_data'
295 | spin_lock_bh(&trigger_data->lock);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:297:21: error: invalid use of undefined type 'struct led_netdev_data'
297 | trigger_data->carrier_link_up = false;
| ^~
drivers/leds/trigger/ledtrig-netdev.c:301:33: error: invalid use of undefined type 'struct led_netdev_data'
301 | if (trigger_data->net_dev)
| ^~
drivers/leds/trigger/ledtrig-netdev.c:302:45: error: invalid use of undefined type 'struct led_netdev_data'
302 | dev_put(trigger_data->net_dev);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:304:29: error: invalid use of undefined type 'struct led_netdev_data'
304 | trigger_data->net_dev = dev;
| ^~
drivers/leds/trigger/ledtrig-netdev.c:307:37: error: invalid use of undefined type 'struct led_netdev_data'
307 | dev_put(trigger_data->net_dev);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:308:29: error: invalid use of undefined type 'struct led_netdev_data'
308 | trigger_data->net_dev = NULL;
| ^~
drivers/leds/trigger/ledtrig-netdev.c:312:29: error: invalid use of undefined type 'struct led_netdev_data'
312 | trigger_data->carrier_link_up = netif_carrier_ok(dev);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:316:28: error: passing argument 1 of 'set_baseline_state' from incompatible pointer type [-Werror=incompatible-pointer-types]
316 | set_baseline_state(trigger_data);
| ^~~~~~~~~~~~
| |
| struct led_netdev_data *
drivers/leds/trigger/ledtrig-netdev.c:45:56: note: expected 'struct led_netdev_data *' but argument is of type 'struct led_netdev_data *'
45 | static void set_baseline_state(struct led_netdev_data *trigger_data)
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:318:37: error: invalid use of undefined type 'struct led_netdev_data'
318 | spin_unlock_bh(&trigger_data->lock);
| ^~
In file included from arch/arc/include/asm/cmpxchg.h:9,
from arch/arc/include/asm/atomic.h:13,
from include/linux/atomic.h:7,
from drivers/leds/trigger/ledtrig-netdev.c:13:
drivers/leds/trigger/ledtrig-netdev.c: In function 'netdev_trig_work':
>> include/linux/container_of.h:19:54: error: invalid use of undefined type 'struct led_netdev_data'
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~
include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert'
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
include/linux/container_of.h:19:23: note: in expansion of macro '__same_type'
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:327:17: note: in expansion of macro 'container_of'
327 | container_of(work, struct led_netdev_data, work.work);
| ^~~~~~~~~~~~
>> include/linux/compiler_types.h:276:27: error: expression in static assertion is not an integer
276 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert'
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
include/linux/container_of.h:19:23: note: in expansion of macro '__same_type'
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:327:17: note: in expansion of macro 'container_of'
327 | container_of(work, struct led_netdev_data, work.work);
| ^~~~~~~~~~~~
In file included from <command-line>:
>> include/linux/compiler_types.h:140:41: error: invalid use of undefined type 'struct led_netdev_data'
140 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/linux/stddef.h:17:33: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/container_of.h:22:28: note: in expansion of macro 'offsetof'
22 | ((type *)(__mptr - offsetof(type, member))); })
| ^~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:327:17: note: in expansion of macro 'container_of'
327 | container_of(work, struct led_netdev_data, work.work);
| ^~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:335:26: error: invalid use of undefined type 'struct led_netdev_data'
335 | if (!trigger_data->net_dev) {
| ^~
drivers/leds/trigger/ledtrig-netdev.c:336:48: error: invalid use of undefined type 'struct led_netdev_data'
336 | led_set_brightness(trigger_data->led_cdev, LED_OFF);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:341:23: error: 'TRIGGER_NETDEV_TX' undeclared (first use in this function)
341 | if (!test_bit(TRIGGER_NETDEV_TX, &trigger_data->mode) &&
| ^~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:341:55: error: invalid use of undefined type 'struct led_netdev_data'
341 | if (!test_bit(TRIGGER_NETDEV_TX, &trigger_data->mode) &&
| ^~
drivers/leds/trigger/ledtrig-netdev.c:342:23: error: 'TRIGGER_NETDEV_RX' undeclared (first use in this function)
342 | !test_bit(TRIGGER_NETDEV_RX, &trigger_data->mode))
| ^~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:342:55: error: invalid use of undefined type 'struct led_netdev_data'
342 | !test_bit(TRIGGER_NETDEV_RX, &trigger_data->mode))
| ^~
drivers/leds/trigger/ledtrig-netdev.c:345:47: error: invalid use of undefined type 'struct led_netdev_data'
345 | dev_stats = dev_get_stats(trigger_data->net_dev, &temp);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:347:55: error: invalid use of undefined type 'struct led_netdev_data'
347 | (test_bit(TRIGGER_NETDEV_TX, &trigger_data->mode) ?
| ^~
drivers/leds/trigger/ledtrig-netdev.c:349:55: error: invalid use of undefined type 'struct led_netdev_data'
349 | (test_bit(TRIGGER_NETDEV_RX, &trigger_data->mode) ?
| ^~
drivers/leds/trigger/ledtrig-netdev.c:352:25: error: invalid use of undefined type 'struct led_netdev_data'
352 | if (trigger_data->last_activity != new_activity) {
| ^~
drivers/leds/trigger/ledtrig-netdev.c:353:53: error: invalid use of undefined type 'struct led_netdev_data'
353 | led_stop_software_blink(trigger_data->led_cdev);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:355:35: error: 'TRIGGER_NETDEV_LINK' undeclared (first use in this function)
355 | invert = test_bit(TRIGGER_NETDEV_LINK, &trigger_data->mode);
| ^~~~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:355:69: error: invalid use of undefined type 'struct led_netdev_data'
355 | invert = test_bit(TRIGGER_NETDEV_LINK, &trigger_data->mode);
| ^~
drivers/leds/trigger/ledtrig-netdev.c:357:58: error: invalid use of undefined type 'struct led_netdev_data'
357 | atomic_read(&trigger_data->interval));
| ^~
drivers/leds/trigger/ledtrig-netdev.c:359:51: error: invalid use of undefined type 'struct led_netdev_data'
359 | led_blink_set_oneshot(trigger_data->led_cdev,
| ^~
drivers/leds/trigger/ledtrig-netdev.c:363:29: error: invalid use of undefined type 'struct led_netdev_data'
363 | trigger_data->last_activity = new_activity;
| ^~
drivers/leds/trigger/ledtrig-netdev.c:366:44: error: invalid use of undefined type 'struct led_netdev_data'
366 | schedule_delayed_work(&trigger_data->work,
| ^~
drivers/leds/trigger/ledtrig-netdev.c:367:51: error: invalid use of undefined type 'struct led_netdev_data'
367 | (atomic_read(&trigger_data->interval)*2));
| ^~
drivers/leds/trigger/ledtrig-netdev.c: In function 'netdev_trig_activate':
>> drivers/leds/trigger/ledtrig-netdev.c:375:39: error: invalid application of 'sizeof' to incomplete type 'struct led_netdev_data'
375 | trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL);
| ^~~~~~
In file included from include/linux/wait.h:9,
from include/linux/pid.h:6,
from include/linux/sched.h:14,
from include/linux/ratelimit.h:6,
from include/linux/dev_printk.h:16,
from include/linux/device.h:15,
from drivers/leds/trigger/ledtrig-netdev.c:15:
drivers/leds/trigger/ledtrig-netdev.c:379:37: error: invalid use of undefined type 'struct led_netdev_data'
379 | spin_lock_init(&trigger_data->lock);
| ^~
include/linux/spinlock.h:333:45: note: in definition of macro 'spin_lock_init'
333 | __raw_spin_lock_init(spinlock_check(lock), \
| ^~~~
drivers/leds/trigger/ledtrig-netdev.c:381:21: error: invalid use of undefined type 'struct led_netdev_data'
381 | trigger_data->notifier.notifier_call = netdev_trig_notify;
| ^~
drivers/leds/trigger/ledtrig-netdev.c:382:21: error: invalid use of undefined type 'struct led_netdev_data'
382 | trigger_data->notifier.priority = 10;
| ^~
In file included from include/linux/rhashtable-types.h:15,
from include/linux/ipc.h:7,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/sched.h:15,
from include/linux/ratelimit.h:6,
from include/linux/dev_printk.h:16,
from include/linux/device.h:15,
from drivers/leds/trigger/ledtrig-netdev.c:15:
drivers/leds/trigger/ledtrig-netdev.c:384:40: error: invalid use of undefined type 'struct led_netdev_data'
384 | INIT_DELAYED_WORK(&trigger_data->work, netdev_trig_work);
| ^~
include/linux/workqueue.h:228:30: note: in definition of macro '__INIT_WORK'
228 | __init_work((_work), _onstack); \
| ^~~~~
include/linux/workqueue.h:252:17: note: in expansion of macro 'INIT_WORK'
252 | INIT_WORK(&(_work)->work, (_func)); \
| ^~~~~~~~~
include/linux/workqueue.h:267:9: note: in expansion of macro '__INIT_DELAYED_WORK'
267 | __INIT_DELAYED_WORK(_work, _func, 0)
| ^~~~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:384:9: note: in expansion of macro 'INIT_DELAYED_WORK'
384 | INIT_DELAYED_WORK(&trigger_data->work, netdev_trig_work);
| ^~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:384:40: error: invalid use of undefined type 'struct led_netdev_data'
384 | INIT_DELAYED_WORK(&trigger_data->work, netdev_trig_work);
| ^~
include/linux/workqueue.h:229:18: note: in definition of macro '__INIT_WORK'
229 | (_work)->data = (atomic_long_t) WORK_DATA_INIT(); \
| ^~~~~
include/linux/workqueue.h:252:17: note: in expansion of macro 'INIT_WORK'
252 | INIT_WORK(&(_work)->work, (_func)); \
| ^~~~~~~~~
include/linux/workqueue.h:267:9: note: in expansion of macro '__INIT_DELAYED_WORK'
267 | __INIT_DELAYED_WORK(_work, _func, 0)
| ^~~~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:384:9: note: in expansion of macro 'INIT_DELAYED_WORK'
384 | INIT_DELAYED_WORK(&trigger_data->work, netdev_trig_work);
| ^~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:384:40: error: invalid use of undefined type 'struct led_netdev_data'
384 | INIT_DELAYED_WORK(&trigger_data->work, netdev_trig_work);
| ^~
include/linux/workqueue.h:230:36: note: in definition of macro '__INIT_WORK'
230 | lockdep_init_map(&(_work)->lockdep_map, "(work_completion)"#_work, &__key, 0); \
| ^~~~~
include/linux/workqueue.h:252:17: note: in expansion of macro 'INIT_WORK'
252 | INIT_WORK(&(_work)->work, (_func)); \
| ^~~~~~~~~
include/linux/workqueue.h:267:9: note: in expansion of macro '__INIT_DELAYED_WORK'
267 | __INIT_DELAYED_WORK(_work, _func, 0)
| ^~~~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:384:9: note: in expansion of macro 'INIT_DELAYED_WORK'
384 | INIT_DELAYED_WORK(&trigger_data->work, netdev_trig_work);
| ^~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:384:40: error: invalid use of undefined type 'struct led_netdev_data'
384 | INIT_DELAYED_WORK(&trigger_data->work, netdev_trig_work);
| ^~
include/linux/workqueue.h:231:34: note: in definition of macro '__INIT_WORK'
231 | INIT_LIST_HEAD(&(_work)->entry); \
| ^~~~~
include/linux/workqueue.h:252:17: note: in expansion of macro 'INIT_WORK'
252 | INIT_WORK(&(_work)->work, (_func)); \
| ^~~~~~~~~
include/linux/workqueue.h:267:9: note: in expansion of macro '__INIT_DELAYED_WORK'
267 | __INIT_DELAYED_WORK(_work, _func, 0)
| ^~~~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:384:9: note: in expansion of macro 'INIT_DELAYED_WORK'
384 | INIT_DELAYED_WORK(&trigger_data->work, netdev_trig_work);
| ^~~~~~~~~~~~~~~~~
drivers/leds/trigger/ledtrig-netdev.c:384:40: error: invalid use of undefined type 'struct led_netdev_data'
384 | INIT_DELAYED_WORK(&trigger_data->work, netdev_trig_work);
| ^~
include/linux/workqueue.h:232:18: note: in definition of macro '__INIT_WORK'
232 | (_work)->func = (_func); \
| ^~~~~
include/linux/workqueue.h:252:17: note: in expansion of macro 'INIT_WORK'
252 | INIT_WORK(&(_work)->work, (_func)); \
| ^~~~~~~~~
include/linux/workqueue.h:267:9: note: in expansion of macro '__INIT_DELAYED_WORK'
vim +48 drivers/leds/trigger/ledtrig-netdev.c
06f502f57d0d77 Ben Whitten 2017-12-10 44
06f502f57d0d77 Ben Whitten 2017-12-10 @45 static void set_baseline_state(struct led_netdev_data *trigger_data)
06f502f57d0d77 Ben Whitten 2017-12-10 46 {
06f502f57d0d77 Ben Whitten 2017-12-10 47 int current_brightness;
06f502f57d0d77 Ben Whitten 2017-12-10 @48 struct led_classdev *led_cdev = trigger_data->led_cdev;
06f502f57d0d77 Ben Whitten 2017-12-10 49
06f502f57d0d77 Ben Whitten 2017-12-10 50 current_brightness = led_cdev->brightness;
06f502f57d0d77 Ben Whitten 2017-12-10 51 if (current_brightness)
06f502f57d0d77 Ben Whitten 2017-12-10 52 led_cdev->blink_brightness = current_brightness;
06f502f57d0d77 Ben Whitten 2017-12-10 53 if (!led_cdev->blink_brightness)
06f502f57d0d77 Ben Whitten 2017-12-10 54 led_cdev->blink_brightness = led_cdev->max_brightness;
06f502f57d0d77 Ben Whitten 2017-12-10 55
df437de7347286 Ansuel Smith 2021-11-12 56 if (!trigger_data->carrier_link_up) {
06f502f57d0d77 Ben Whitten 2017-12-10 57 led_set_brightness(led_cdev, LED_OFF);
df437de7347286 Ansuel Smith 2021-11-12 58 } else {
4aa7005c8428f8 Ansuel Smith 2021-11-12 @59 if (test_bit(TRIGGER_NETDEV_LINK, &trigger_data->mode))
06f502f57d0d77 Ben Whitten 2017-12-10 60 led_set_brightness(led_cdev,
06f502f57d0d77 Ben Whitten 2017-12-10 61 led_cdev->blink_brightness);
06f502f57d0d77 Ben Whitten 2017-12-10 62 else
06f502f57d0d77 Ben Whitten 2017-12-10 63 led_set_brightness(led_cdev, LED_OFF);
06f502f57d0d77 Ben Whitten 2017-12-10 64
06f502f57d0d77 Ben Whitten 2017-12-10 65 /* If we are looking for RX/TX start periodically
06f502f57d0d77 Ben Whitten 2017-12-10 66 * checking stats
06f502f57d0d77 Ben Whitten 2017-12-10 67 */
4aa7005c8428f8 Ansuel Smith 2021-11-12 @68 if (test_bit(TRIGGER_NETDEV_TX, &trigger_data->mode) ||
4aa7005c8428f8 Ansuel Smith 2021-11-12 @69 test_bit(TRIGGER_NETDEV_RX, &trigger_data->mode))
06f502f57d0d77 Ben Whitten 2017-12-10 70 schedule_delayed_work(&trigger_data->work, 0);
06f502f57d0d77 Ben Whitten 2017-12-10 71 }
06f502f57d0d77 Ben Whitten 2017-12-10 72 }
06f502f57d0d77 Ben Whitten 2017-12-10 73
06f502f57d0d77 Ben Whitten 2017-12-10 74 static ssize_t device_name_show(struct device *dev,
06f502f57d0d77 Ben Whitten 2017-12-10 75 struct device_attribute *attr, char *buf)
06f502f57d0d77 Ben Whitten 2017-12-10 76 {
f8112a1de1a728 Uwe Kleine-König 2018-07-02 77 struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
06f502f57d0d77 Ben Whitten 2017-12-10 78 ssize_t len;
06f502f57d0d77 Ben Whitten 2017-12-10 79
06f502f57d0d77 Ben Whitten 2017-12-10 80 spin_lock_bh(&trigger_data->lock);
06f502f57d0d77 Ben Whitten 2017-12-10 81 len = sprintf(buf, "%s\n", trigger_data->device_name);
06f502f57d0d77 Ben Whitten 2017-12-10 82 spin_unlock_bh(&trigger_data->lock);
06f502f57d0d77 Ben Whitten 2017-12-10 83
06f502f57d0d77 Ben Whitten 2017-12-10 84 return len;
06f502f57d0d77 Ben Whitten 2017-12-10 85 }
06f502f57d0d77 Ben Whitten 2017-12-10 86
06f502f57d0d77 Ben Whitten 2017-12-10 87 static ssize_t device_name_store(struct device *dev,
06f502f57d0d77 Ben Whitten 2017-12-10 88 struct device_attribute *attr, const char *buf,
06f502f57d0d77 Ben Whitten 2017-12-10 89 size_t size)
06f502f57d0d77 Ben Whitten 2017-12-10 90 {
f8112a1de1a728 Uwe Kleine-König 2018-07-02 91 struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
06f502f57d0d77 Ben Whitten 2017-12-10 92
06f502f57d0d77 Ben Whitten 2017-12-10 93 if (size >= IFNAMSIZ)
06f502f57d0d77 Ben Whitten 2017-12-10 94 return -EINVAL;
06f502f57d0d77 Ben Whitten 2017-12-10 95
06f502f57d0d77 Ben Whitten 2017-12-10 96 cancel_delayed_work_sync(&trigger_data->work);
06f502f57d0d77 Ben Whitten 2017-12-10 97
06f502f57d0d77 Ben Whitten 2017-12-10 98 spin_lock_bh(&trigger_data->lock);
06f502f57d0d77 Ben Whitten 2017-12-10 99
06f502f57d0d77 Ben Whitten 2017-12-10 100 if (trigger_data->net_dev) {
06f502f57d0d77 Ben Whitten 2017-12-10 101 dev_put(trigger_data->net_dev);
06f502f57d0d77 Ben Whitten 2017-12-10 102 trigger_data->net_dev = NULL;
06f502f57d0d77 Ben Whitten 2017-12-10 103 }
06f502f57d0d77 Ben Whitten 2017-12-10 104
909346433064b8 Rasmus Villemoes 2019-03-14 105 memcpy(trigger_data->device_name, buf, size);
909346433064b8 Rasmus Villemoes 2019-03-14 106 trigger_data->device_name[size] = 0;
06f502f57d0d77 Ben Whitten 2017-12-10 107 if (size > 0 && trigger_data->device_name[size - 1] == '\n')
06f502f57d0d77 Ben Whitten 2017-12-10 108 trigger_data->device_name[size - 1] = 0;
06f502f57d0d77 Ben Whitten 2017-12-10 109
06f502f57d0d77 Ben Whitten 2017-12-10 110 if (trigger_data->device_name[0] != 0)
06f502f57d0d77 Ben Whitten 2017-12-10 111 trigger_data->net_dev =
06f502f57d0d77 Ben Whitten 2017-12-10 112 dev_get_by_name(&init_net, trigger_data->device_name);
06f502f57d0d77 Ben Whitten 2017-12-10 113
df437de7347286 Ansuel Smith 2021-11-12 114 trigger_data->carrier_link_up = false;
06f502f57d0d77 Ben Whitten 2017-12-10 115 if (trigger_data->net_dev != NULL)
df437de7347286 Ansuel Smith 2021-11-12 116 trigger_data->carrier_link_up = netif_carrier_ok(trigger_data->net_dev);
06f502f57d0d77 Ben Whitten 2017-12-10 117
06f502f57d0d77 Ben Whitten 2017-12-10 118 trigger_data->last_activity = 0;
06f502f57d0d77 Ben Whitten 2017-12-10 119
06f502f57d0d77 Ben Whitten 2017-12-10 @120 set_baseline_state(trigger_data);
06f502f57d0d77 Ben Whitten 2017-12-10 121 spin_unlock_bh(&trigger_data->lock);
06f502f57d0d77 Ben Whitten 2017-12-10 122
06f502f57d0d77 Ben Whitten 2017-12-10 123 return size;
06f502f57d0d77 Ben Whitten 2017-12-10 124 }
06f502f57d0d77 Ben Whitten 2017-12-10 125
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
Re: [PATCH RFC net-next] net/smc: Unbind buffer size from clcsock and make it tunable
by kernel test robot
Hi Tony,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Tony-Lu/net-smc-Unbind-buffer-si...
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 89f971182417cb27abd82cfc48a7f36b99352ddc
config: mips-randconfig-r032-20211122 (attached as .config)
compiler: mips64el-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/f8b865aff3164098137794ac439371b23...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Tony-Lu/net-smc-Unbind-buffer-size-from-clcsock-and-make-it-tunable/20211122-215118
git checkout f8b865aff3164098137794ac439371b2391c836b
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=mips SHELL=/bin/bash net/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
net/smc/smc_sysctl.c: In function 'smc_sysctl_init_net':
>> net/smc/smc_sysctl.c:50:17: error: 'struct netns_smc' has no member named 'smc_hdr'
50 | net->smc.smc_hdr = register_net_sysctl(net, "net/smc", table);
| ^
net/smc/smc_sysctl.c:51:22: error: 'struct netns_smc' has no member named 'smc_hdr'
51 | if (!net->smc.smc_hdr)
| ^
net/smc/smc_sysctl.c: In function 'smc_sysctl_exit_net':
net/smc/smc_sysctl.c:65:45: error: 'struct netns_smc' has no member named 'smc_hdr'
65 | unregister_net_sysctl_table(net->smc.smc_hdr);
| ^
net/smc/smc_sysctl.c: At top level:
net/smc/smc_sysctl.c:73:12: warning: no previous prototype for 'smc_sysctl_init' [-Wmissing-prototypes]
73 | int __init smc_sysctl_init(void)
| ^~~~~~~~~~~~~~~
net/smc/smc_sysctl.c:78:6: warning: no previous prototype for 'smc_sysctl_exit' [-Wmissing-prototypes]
78 | void smc_sysctl_exit(void)
| ^~~~~~~~~~~~~~~
--
In file included from net/smc/af_smc.c:54:
>> net/smc/smc_sysctl.h:13:5: warning: no previous prototype for 'smc_sysctl_init' [-Wmissing-prototypes]
13 | int smc_sysctl_init(void)
| ^~~~~~~~~~~~~~~
>> net/smc/smc_sysctl.h:18:6: warning: no previous prototype for 'smc_sysctl_exit' [-Wmissing-prototypes]
18 | void smc_sysctl_exit(void) { }
| ^~~~~~~~~~~~~~~
vim +50 net/smc/smc_sysctl.c
33
34 static __net_init int smc_sysctl_init_net(struct net *net)
35 {
36 struct ctl_table *table;
37
38 table = smc_table;
39 if (!net_eq(net, &init_net)) {
40 int i;
41
42 table = kmemdup(table, sizeof(smc_table), GFP_KERNEL);
43 if (!table)
44 goto err_alloc;
45
46 for (i = 0; i < ARRAY_SIZE(smc_table) - 1; i++)
47 table[i].data += (void *)net - (void *)&init_net;
48 }
49
> 50 net->smc.smc_hdr = register_net_sysctl(net, "net/smc", table);
51 if (!net->smc.smc_hdr)
52 goto err_reg;
53
54 return 0;
55
56 err_reg:
57 if (!net_eq(net, &init_net))
58 kfree(table);
59 err_alloc:
60 return -ENOMEM;
61 }
62
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
Re: [PATCH] mmc: cavium: Ensure proper mapping between request and interrupt
by kernel test robot
Hi Wojciech,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on ulf-hansson-mmc-mirror/next v5.16-rc2 next-20211118]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Wojciech-Bartczak/mmc-cavium-Ens...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 8ab774587903771821b59471cc723bba6d893942
config: arm64-buildonly-randconfig-r006-20211115 (attached as .config)
compiler: aarch64-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/89ba622be0ed9957864526cf69be1b607...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Wojciech-Bartczak/mmc-cavium-Ensure-proper-mapping-between-request-and-interrupt/20211116-000649
git checkout 89ba622be0ed9957864526cf69be1b6070e9f117
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/mmc/host/
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/mmc/host/cavium.c: In function 'cvm_mmc_interrupt':
>> drivers/mmc/host/cavium.c:510:13: error: 'mrq' undeclared (first use in this function); did you mean 'irq'?
510 | if (mrq->done)
| ^~~
| irq
drivers/mmc/host/cavium.c:510:13: note: each undeclared identifier is reported only once for each function it appears in
vim +510 drivers/mmc/host/cavium.c
434
435 irqreturn_t cvm_mmc_interrupt(int irq, void *dev_id)
436 {
437 struct cvm_mmc_host *host = dev_id;
438 struct mmc_request *req;
439 u64 emm_int, rsp_sts;
440 bool host_done;
441 struct cvm_mmc_slot *slot;
442 int bus_id;
443
444 if (host->need_irq_handler_lock)
445 spin_lock(&host->irq_handler_lock);
446 else
447 __acquire(&host->irq_handler_lock);
448
449 /* Clear interrupt bits (write 1 clears ). */
450 emm_int = readq(host->base + MIO_EMM_INT(host));
451 writeq(emm_int, host->base + MIO_EMM_INT(host));
452
453 if (emm_int & MIO_EMM_INT_SWITCH_ERR)
454 check_switch_errors(host);
455
456 req = host->current_req;
457 if (!req)
458 goto out;
459
460 slot = mmc_priv(req->host);
461
462 /* Get response */
463 rsp_sts = readq(host->base + MIO_EMM_RSP_STS(host));
464 /* Map request to cvm_mmc_slot */
465 bus_id = FIELD_GET(MIO_EMM_RSP_STS_BUS_ID, rsp_sts);
466 if (bus_id != slot->bus_id) {
467 dev_err(mmc_classdev(slot->mmc),
468 "Remapping, request for slot %d, interrupt for %d!\n",
469 slot->bus_id, bus_id);
470 slot = host->slot[bus_id];
471 }
472
473 /*
474 * dma_val set means DMA is still in progress. Don't touch
475 * the request and wait for the interrupt indicating that
476 * the DMA is finished.
477 */
478 if ((rsp_sts & MIO_EMM_RSP_STS_DMA_VAL) && host->dma_active)
479 goto out;
480
481 if (!host->dma_active && req->data &&
482 (emm_int & MIO_EMM_INT_BUF_DONE)) {
483 unsigned int type = (rsp_sts >> 7) & 3;
484
485 if (type == 1)
486 do_read(host, req, rsp_sts & MIO_EMM_RSP_STS_DBUF);
487 else if (type == 2)
488 do_write(req);
489 }
490
491 host_done = emm_int & MIO_EMM_INT_CMD_DONE ||
492 emm_int & MIO_EMM_INT_DMA_DONE ||
493 emm_int & MIO_EMM_INT_CMD_ERR ||
494 emm_int & MIO_EMM_INT_DMA_ERR;
495
496 if (!(host_done && req->done))
497 goto no_req_done;
498
499 req->cmd->error = check_status(rsp_sts);
500
501 if (host->dma_active && req->data)
502 if (!finish_dma(host, req->data))
503 goto no_req_done;
504
505 set_cmd_response(host, req, rsp_sts);
506 if ((emm_int & MIO_EMM_INT_DMA_ERR) &&
507 (rsp_sts & MIO_EMM_RSP_STS_DMA_PEND))
508 cleanup_dma(host, rsp_sts);
509
> 510 if (mrq->done)
511 mrq->done(mrq);
512 host->current_req = NULL;
513
514 no_req_done:
515 if (host->dmar_fixup_done)
516 host->dmar_fixup_done(host);
517 if (host_done)
518 host->release_bus(host);
519 out:
520 if (host->need_irq_handler_lock)
521 spin_unlock(&host->irq_handler_lock);
522 else
523 __release(&host->irq_handler_lock);
524 return IRQ_RETVAL(emm_int != 0);
525 }
526
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
Re: [PATCH v2 10/20] linux/container_of.h: Remove unnecessary cast
by kernel test robot
Hi Alejandro,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on robh/for-next]
[also build test WARNING on linux/master linus/master v5.16-rc2 next-20211118]
[cannot apply to drm-intel/for-linux-next mkl-can-next/testing]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Alejandro-Colomar/linux-stddef-h...
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: mips-randconfig-s031-20211122 (attached as .config)
compiler: mips64-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://github.com/0day-ci/linux/commit/ed03be33a3de1708b5a06ea31cc6cd857...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Alejandro-Colomar/linux-stddef-h-linux-offsetof-h-Split-offsetof-into-a-separate-header/20211120-220144
git checkout ed03be33a3de1708b5a06ea31cc6cd8573890649
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
command-line: note: in included file:
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined
builtin:0:0: sparse: this was the original definition
arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:280:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int [noderef] __user *__pu_ptr @@ got unsigned int [usertype] * @@
arch/mips/kernel/signal.c:280:13: sparse: expected unsigned int [noderef] __user *__pu_ptr
arch/mips/kernel/signal.c:280:13: sparse: got unsigned int [usertype] *
arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const [noderef] __user *__gu_ptr @@ got unsigned int * @@
arch/mips/kernel/signal.c:293:23: sparse: expected unsigned int const [noderef] __user *__gu_ptr
arch/mips/kernel/signal.c:293:23: sparse: got unsigned int *
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const [noderef] __user *__gu_ptr @@ got unsigned int * @@
arch/mips/kernel/signal.c:300:23: sparse: expected unsigned int const [noderef] __user *__gu_ptr
arch/mips/kernel/signal.c:300:23: sparse: got unsigned int *
arch/mips/kernel/signal.c:667:17: sparse: sparse: symbol 'sys_rt_sigreturn' was not declared. Should it be static?
>> arch/mips/kernel/signal.c:157:14: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const *__mptr @@ got void [noderef] __user *sc @@
arch/mips/kernel/signal.c:157:14: sparse: expected void const *__mptr
arch/mips/kernel/signal.c:157:14: sparse: got void [noderef] __user *sc
arch/mips/kernel/signal.c:157:12: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ucontext [noderef] __user *uc @@ got struct ucontext * @@
arch/mips/kernel/signal.c:157:12: sparse: expected struct ucontext [noderef] __user *uc
arch/mips/kernel/signal.c:157:12: sparse: got struct ucontext *
>> arch/mips/kernel/signal.c:157:14: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const *__mptr @@ got void [noderef] __user *sc @@
arch/mips/kernel/signal.c:157:14: sparse: expected void const *__mptr
arch/mips/kernel/signal.c:157:14: sparse: got void [noderef] __user *sc
arch/mips/kernel/signal.c:157:12: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ucontext [noderef] __user *uc @@ got struct ucontext * @@
arch/mips/kernel/signal.c:157:12: sparse: expected struct ucontext [noderef] __user *uc
arch/mips/kernel/signal.c:157:12: sparse: got struct ucontext *
vim +157 arch/mips/kernel/signal.c
2db9ca0a355100 Paul Burton 2015-07-27 143
bf82cb30c7e58b Paul Burton 2015-07-27 144 /*
bf82cb30c7e58b Paul Burton 2015-07-27 145 * Extended context handling.
bf82cb30c7e58b Paul Burton 2015-07-27 146 */
bf82cb30c7e58b Paul Burton 2015-07-27 147
bf82cb30c7e58b Paul Burton 2015-07-27 148 static inline void __user *sc_to_extcontext(void __user *sc)
bf82cb30c7e58b Paul Burton 2015-07-27 149 {
bf82cb30c7e58b Paul Burton 2015-07-27 150 struct ucontext __user *uc;
bf82cb30c7e58b Paul Burton 2015-07-27 151
bf82cb30c7e58b Paul Burton 2015-07-27 152 /*
bf82cb30c7e58b Paul Burton 2015-07-27 153 * We can just pretend the sigcontext is always embedded in a struct
bf82cb30c7e58b Paul Burton 2015-07-27 154 * ucontext here, because the offset from sigcontext to extended
bf82cb30c7e58b Paul Burton 2015-07-27 155 * context is the same in the struct sigframe case.
bf82cb30c7e58b Paul Burton 2015-07-27 156 */
bf82cb30c7e58b Paul Burton 2015-07-27 @157 uc = container_of(sc, struct ucontext, uc_mcontext);
bf82cb30c7e58b Paul Burton 2015-07-27 158 return &uc->uc_extcontext;
bf82cb30c7e58b Paul Burton 2015-07-27 159 }
bf82cb30c7e58b Paul Burton 2015-07-27 160
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
[intel-lts:4.19/android_r 2/2] include/asm-generic/pgtable.h:1125:2: error: #error Missing MAX_POSSIBLE_PHYSMEM_BITS definition
by kernel test robot
tree: https://github.com/intel/linux-intel-lts.git 4.19/android_r
head: 8367d521b6ca9b77d18fbb56f936df6824f0843c
commit: 8367d521b6ca9b77d18fbb56f936df6824f0843c [2/2] Merge remote-tracking branch 'google-repo/android-4.19-stable' into 4.19/android_r
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/intel/linux-intel-lts/commit/8367d521b6ca9b77d18fbb56f...
git remote add intel-lts https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-lts 4.19/android_r
git checkout 8367d521b6ca9b77d18fbb56f936df6824f0843c
# save the attached .config to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 prepare
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 >>):
In file included from arch/x86/include/asm/pgtable.h:1445,
from include/linux/memremap.h:7,
from include/linux/mm.h:27,
from include/linux/memcontrol.h:29,
from include/linux/swap.h:9,
from include/linux/suspend.h:5,
from arch/x86/kernel/asm-offsets.c:13:
>> include/asm-generic/pgtable.h:1125:2: error: #error Missing MAX_POSSIBLE_PHYSMEM_BITS definition
1125 | #error Missing MAX_POSSIBLE_PHYSMEM_BITS definition
| ^~~~~
arch/x86/kernel/asm-offsets.c:32:6: warning: no previous prototype for 'common' [-Wmissing-prototypes]
32 | void common(void) {
| ^~~~~~
make[2]: *** [./Kbuild:56: arch/x86/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1220: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:146: sub-make] Error 2
make: Target 'prepare' not remade because of errors.
vim +1125 include/asm-generic/pgtable.h
^1da177e4c3f41 Linus Torvalds 2005-04-16 1117
d4fe42d646f277 Arnd Bergmann 2020-11-11 1118 #if !defined(MAX_POSSIBLE_PHYSMEM_BITS) && !defined(CONFIG_64BIT)
d4fe42d646f277 Arnd Bergmann 2020-11-11 1119 #ifdef CONFIG_PHYS_ADDR_T_64BIT
d4fe42d646f277 Arnd Bergmann 2020-11-11 1120 /*
d4fe42d646f277 Arnd Bergmann 2020-11-11 1121 * ZSMALLOC needs to know the highest PFN on 32-bit architectures
d4fe42d646f277 Arnd Bergmann 2020-11-11 1122 * with physical address space extension, but falls back to
d4fe42d646f277 Arnd Bergmann 2020-11-11 1123 * BITS_PER_LONG otherwise.
d4fe42d646f277 Arnd Bergmann 2020-11-11 1124 */
d4fe42d646f277 Arnd Bergmann 2020-11-11 @1125 #error Missing MAX_POSSIBLE_PHYSMEM_BITS definition
d4fe42d646f277 Arnd Bergmann 2020-11-11 1126 #else
d4fe42d646f277 Arnd Bergmann 2020-11-11 1127 #define MAX_POSSIBLE_PHYSMEM_BITS 32
d4fe42d646f277 Arnd Bergmann 2020-11-11 1128 #endif
d4fe42d646f277 Arnd Bergmann 2020-11-11 1129 #endif
d4fe42d646f277 Arnd Bergmann 2020-11-11 1130
:::::: The code at line 1125 was first introduced by commit
:::::: d4fe42d646f277dfbc8a6cbc82bc4c8a12dd7798 arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed
:::::: TO: Arnd Bergmann <arnd(a)arndb.de>
:::::: CC: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
[intel-lts:4.19/android_r 16639/25353] arch/mips/include/asm/vdso/gettimeofday.h:70:38: error: '__NR_clock_gettime64' undeclared
by kernel test robot
tree: https://github.com/intel/linux-intel-lts.git 4.19/android_r
head: 8367d521b6ca9b77d18fbb56f936df6824f0843c
commit: f3a6a2a287f2413be23e2caeb8462d3659749582 [16639/25353] UPSTREAM: mips: vdso: Fix source path
config: mips-ip28_defconfig (attached as .config)
compiler: mips64-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/intel/linux-intel-lts/commit/f3a6a2a287f2413be23e2caeb...
git remote add intel-lts https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-lts 4.19/android_r
git checkout f3a6a2a287f2413be23e2caeb8462d3659749582
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=mips SHELL=/bin/bash
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 >>):
In file included from lib/vdso/gettimeofday.c:26,
from <command-line>:
arch/mips/include/asm/vdso/gettimeofday.h: In function 'clock_gettime_fallback':
>> arch/mips/include/asm/vdso/gettimeofday.h:70:38: error: '__NR_clock_gettime64' undeclared (first use in this function)
70 | register long nr asm("v0") = __NR_clock_gettime64;
| ^~~~~~~~~~~~~~~~~~~~
arch/mips/include/asm/vdso/gettimeofday.h:70:38: note: each undeclared identifier is reported only once for each function it appears in
arch/mips/include/asm/vdso/gettimeofday.h: In function 'clock_getres_fallback':
>> arch/mips/include/asm/vdso/gettimeofday.h:94:38: error: '__NR_clock_getres_time64' undeclared (first use in this function)
94 | register long nr asm("v0") = __NR_clock_getres_time64;
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from <command-line>:
lib/vdso/gettimeofday.c: In function '__cvdso_clock_gettime32':
lib/vdso/gettimeofday.c:113:20: error: invalid use of undefined type 'struct compat_timespec'
113 | res->tv_sec = ts.tv_sec;
| ^~
lib/vdso/gettimeofday.c:114:20: error: invalid use of undefined type 'struct compat_timespec'
114 | res->tv_nsec = ts.tv_nsec;
| ^~
lib/vdso/gettimeofday.c: In function '__cvdso_clock_getres_time32':
lib/vdso/gettimeofday.c:219:20: error: invalid use of undefined type 'struct compat_timespec'
219 | res->tv_sec = ts.tv_sec;
| ^~
lib/vdso/gettimeofday.c:220:20: error: invalid use of undefined type 'struct compat_timespec'
220 | res->tv_nsec = ts.tv_nsec;
| ^~
arch/mips/vdso/vgettimeofday.c: At top level:
arch/mips/vdso/vgettimeofday.c:14:5: warning: no previous prototype for '__vdso_clock_gettime' [-Wmissing-prototypes]
14 | int __vdso_clock_gettime(clockid_t clock,
| ^~~~~~~~~~~~~~~~~~~~
arch/mips/vdso/vgettimeofday.c:20:5: warning: no previous prototype for '__vdso_gettimeofday' [-Wmissing-prototypes]
20 | int __vdso_gettimeofday(struct __kernel_old_timeval *tv,
| ^~~~~~~~~~~~~~~~~~~
arch/mips/vdso/vgettimeofday.c:26:5: warning: no previous prototype for '__vdso_clock_getres' [-Wmissing-prototypes]
26 | int __vdso_clock_getres(clockid_t clock_id,
| ^~~~~~~~~~~~~~~~~~~
arch/mips/vdso/vgettimeofday.c:32:5: warning: no previous prototype for '__vdso_clock_gettime64' [-Wmissing-prototypes]
32 | int __vdso_clock_gettime64(clockid_t clock,
| ^~~~~~~~~~~~~~~~~~~~~~
vim +/__NR_clock_gettime64 +70 arch/mips/include/asm/vdso/gettimeofday.h
6b7f832e465d88 Vincenzo Frascino 2019-06-21 59
6b7f832e465d88 Vincenzo Frascino 2019-06-21 60 static __always_inline long clock_gettime_fallback(
6b7f832e465d88 Vincenzo Frascino 2019-06-21 61 clockid_t _clkid,
6b7f832e465d88 Vincenzo Frascino 2019-06-21 62 struct __kernel_timespec *_ts)
6b7f832e465d88 Vincenzo Frascino 2019-06-21 63 {
6b7f832e465d88 Vincenzo Frascino 2019-06-21 64 register struct __kernel_timespec *ts asm("a1") = _ts;
6b7f832e465d88 Vincenzo Frascino 2019-06-21 65 register clockid_t clkid asm("a0") = _clkid;
6b7f832e465d88 Vincenzo Frascino 2019-06-21 66 register long ret asm("v0");
6b7f832e465d88 Vincenzo Frascino 2019-06-21 67 #if _MIPS_SIM == _MIPS_SIM_ABI64
6b7f832e465d88 Vincenzo Frascino 2019-06-21 68 register long nr asm("v0") = __NR_clock_gettime;
6b7f832e465d88 Vincenzo Frascino 2019-06-21 69 #else
6b7f832e465d88 Vincenzo Frascino 2019-06-21 @70 register long nr asm("v0") = __NR_clock_gettime64;
6b7f832e465d88 Vincenzo Frascino 2019-06-21 71 #endif
6b7f832e465d88 Vincenzo Frascino 2019-06-21 72 register long error asm("a3");
6b7f832e465d88 Vincenzo Frascino 2019-06-21 73
6b7f832e465d88 Vincenzo Frascino 2019-06-21 74 asm volatile(
6b7f832e465d88 Vincenzo Frascino 2019-06-21 75 " syscall\n"
6b7f832e465d88 Vincenzo Frascino 2019-06-21 76 : "=r" (ret), "=r" (error)
6b7f832e465d88 Vincenzo Frascino 2019-06-21 77 : "r" (clkid), "r" (ts), "r" (nr)
6b7f832e465d88 Vincenzo Frascino 2019-06-21 78 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
6b7f832e465d88 Vincenzo Frascino 2019-06-21 79 "$14", "$15", "$24", "$25", "hi", "lo", "memory");
6b7f832e465d88 Vincenzo Frascino 2019-06-21 80
6b7f832e465d88 Vincenzo Frascino 2019-06-21 81 return error ? -ret : ret;
6b7f832e465d88 Vincenzo Frascino 2019-06-21 82 }
6b7f832e465d88 Vincenzo Frascino 2019-06-21 83
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 84 static __always_inline int clock_getres_fallback(
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 85 clockid_t _clkid,
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 86 struct __kernel_timespec *_ts)
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 87 {
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 88 register struct __kernel_timespec *ts asm("a1") = _ts;
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 89 register clockid_t clkid asm("a0") = _clkid;
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 90 register long ret asm("v0");
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 91 #if _MIPS_SIM == _MIPS_SIM_ABI64
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 92 register long nr asm("v0") = __NR_clock_getres;
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 93 #else
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 @94 register long nr asm("v0") = __NR_clock_getres_time64;
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 95 #endif
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 96 register long error asm("a3");
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 97
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 98 asm volatile(
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 99 " syscall\n"
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 100 : "=r" (ret), "=r" (error)
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 101 : "r" (clkid), "r" (ts), "r" (nr)
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 102 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 103 "$14", "$15", "$24", "$25", "hi", "lo", "memory");
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 104
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 105 return error ? -ret : ret;
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 106 }
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 107
:::::: The code at line 70 was first introduced by commit
:::::: 6b7f832e465d88fca5f3a07b85e664f962c88e0b BACKPORT: mips: Add support for generic vDSO
:::::: TO: Vincenzo Frascino <vincenzo.frascino(a)arm.com>
:::::: CC: Alistair Delva <adelva(a)google.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months