* [linux-stable-rc:linux-4.14.y 3879/4798] ipc/mqueue.c:1531:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE3'
@ 2018-05-29 16:17 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2018-05-29 16:17 UTC (permalink / raw)
To: Sergey Senozhatsky
Cc: kbuild-all, Greg Kroah-Hartman, Andrew Morton,
Linux Memory Management List
[-- Attachment #1: Type: text/plain, Size: 22310 bytes --]
Hi Sergey,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
head: 9fcb9d72e8a3a813caae6e2fac43a73603d75abd
commit: 8e99c881e497e7f7528f693c563e204ae888a846 [3879/4798] tools/lib/subcmd/pager.c: do not alias select() params
config: x86_64-acpi-redef (attached as .config)
compiler: gcc-8 (Debian 8.1.0-3) 8.1.0
reproduce:
git checkout 8e99c881e497e7f7528f693c563e204ae888a846
# save the attached .config to linux build tree
make ARCH=x86_64
All warnings (new ones prefixed by >>):
In file included from ipc/mqueue.c:29:
include/linux/syscalls.h:211:18: warning: 'sys_mq_open' alias between functions of incompatible types 'long int(const char *, int, umode_t, struct mq_attr *)' {aka 'long int(const char *, int, short unsigned int, struct mq_attr *)'} and 'long int(long int, long int, long int, long int)' [-Wattribute-alias]
asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
^~~
include/linux/syscalls.h:207:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:199:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
ipc/mqueue.c:847:1: note: in expansion of macro 'SYSCALL_DEFINE4'
SYSCALL_DEFINE4(mq_open, const char __user *, u_name, int, oflag, umode_t, mode,
^~~~~~~~~~~~~~~
include/linux/syscalls.h:215:18: note: aliased declaration here
asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
^~~
include/linux/syscalls.h:207:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:199:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
ipc/mqueue.c:847:1: note: in expansion of macro 'SYSCALL_DEFINE4'
SYSCALL_DEFINE4(mq_open, const char __user *, u_name, int, oflag, umode_t, mode,
^~~~~~~~~~~~~~~
In file included from include/linux/ethtool.h:17,
from include/linux/netdevice.h:41,
from include/net/sock.h:51,
from ipc/mqueue.c:42:
include/linux/compat.h:51:18: warning: 'compat_sys_mq_getsetattr' alias between functions of incompatible types 'long int(mqd_t, const struct compat_mq_attr *, struct compat_mq_attr *)' {aka 'long int(int, const struct compat_mq_attr *, struct compat_mq_attr *)'} and 'long int(long int, long int, long int)' [-Wattribute-alias]
asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
^~~~~~~~~~
include/linux/compat.h:42:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~
>> ipc/mqueue.c:1531:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE3'
COMPAT_SYSCALL_DEFINE3(mq_getsetattr, mqd_t, mqdes,
^~~~~~~~~~~~~~~~~~~~~~
include/linux/compat.h:55:18: note: aliased declaration here
asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\
^~~~~~~~~~
include/linux/compat.h:42:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~
>> ipc/mqueue.c:1531:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE3'
COMPAT_SYSCALL_DEFINE3(mq_getsetattr, mqd_t, mqdes,
^~~~~~~~~~~~~~~~~~~~~~
include/linux/compat.h:51:18: warning: 'compat_sys_mq_notify' alias between functions of incompatible types 'long int(mqd_t, const struct compat_sigevent *)' {aka 'long int(int, const struct compat_sigevent *)'} and 'long int(long int, long int)' [-Wattribute-alias]
asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
^~~~~~~~~~
include/linux/compat.h:40:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
COMPAT_SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~
>> ipc/mqueue.c:1517:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE2'
COMPAT_SYSCALL_DEFINE2(mq_notify, mqd_t, mqdes,
^~~~~~~~~~~~~~~~~~~~~~
include/linux/compat.h:55:18: note: aliased declaration here
asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\
^~~~~~~~~~
include/linux/compat.h:40:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
COMPAT_SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~
>> ipc/mqueue.c:1517:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE2'
COMPAT_SYSCALL_DEFINE2(mq_notify, mqd_t, mqdes,
^~~~~~~~~~~~~~~~~~~~~~
include/linux/compat.h:51:18: warning: 'compat_sys_mq_timedreceive' alias between functions of incompatible types 'long int(mqd_t, char *, compat_size_t, unsigned int *, const struct compat_timespec *)' {aka 'long int(int, char *, unsigned int, unsigned int *, const struct compat_timespec *)'} and 'long int(long int, long int, long int, long int, long int)' [-Wattribute-alias]
asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
^~~~~~~~~~
include/linux/compat.h:46:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~
>> ipc/mqueue.c:1502:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE5'
COMPAT_SYSCALL_DEFINE5(mq_timedreceive, mqd_t, mqdes,
^~~~~~~~~~~~~~~~~~~~~~
include/linux/compat.h:55:18: note: aliased declaration here
asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\
^~~~~~~~~~
include/linux/compat.h:46:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~
>> ipc/mqueue.c:1502:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE5'
COMPAT_SYSCALL_DEFINE5(mq_timedreceive, mqd_t, mqdes,
^~~~~~~~~~~~~~~~~~~~~~
include/linux/compat.h:51:18: warning: 'compat_sys_mq_timedsend' alias between functions of incompatible types 'long int(mqd_t, const char *, compat_size_t, unsigned int, const struct compat_timespec *)' {aka 'long int(int, const char *, unsigned int, unsigned int, const struct compat_timespec *)'} and 'long int(long int, long int, long int, long int, long int)' [-Wattribute-alias]
asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
^~~~~~~~~~
include/linux/compat.h:46:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~
ipc/mqueue.c:1487:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE5'
COMPAT_SYSCALL_DEFINE5(mq_timedsend, mqd_t, mqdes,
^~~~~~~~~~~~~~~~~~~~~~
include/linux/compat.h:55:18: note: aliased declaration here
asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\
^~~~~~~~~~
include/linux/compat.h:46:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~
ipc/mqueue.c:1487:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE5'
COMPAT_SYSCALL_DEFINE5(mq_timedsend, mqd_t, mqdes,
^~~~~~~~~~~~~~~~~~~~~~
include/linux/compat.h:51:18: warning: 'compat_sys_mq_open' alias between functions of incompatible types 'long int(const char *, int, compat_mode_t, struct compat_mq_attr *)' {aka 'long int(const char *, int, short unsigned int, struct compat_mq_attr *)'} and 'long int(long int, long int, long int, long int)' [-Wattribute-alias]
asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
^~~~~~~~~~
include/linux/compat.h:44:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
COMPAT_SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~
>> ipc/mqueue.c:1464:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE4'
COMPAT_SYSCALL_DEFINE4(mq_open, const char __user *, u_name,
^~~~~~~~~~~~~~~~~~~~~~
include/linux/compat.h:55:18: note: aliased declaration here
asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\
^~~~~~~~~~
include/linux/compat.h:44:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
COMPAT_SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~
>> ipc/mqueue.c:1464:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE4'
COMPAT_SYSCALL_DEFINE4(mq_open, const char __user *, u_name,
^~~~~~~~~~~~~~~~~~~~~~
In file included from ipc/mqueue.c:29:
include/linux/syscalls.h:211:18: warning: 'sys_mq_getsetattr' alias between functions of incompatible types 'long int(mqd_t, const struct mq_attr *, struct mq_attr *)' {aka 'long int(int, const struct mq_attr *, struct mq_attr *)'} and 'long int(long int, long int, long int)' [-Wattribute-alias]
asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
^~~
include/linux/syscalls.h:207:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:198:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
ipc/mqueue.c:1398:1: note: in expansion of macro 'SYSCALL_DEFINE3'
SYSCALL_DEFINE3(mq_getsetattr, mqd_t, mqdes,
^~~~~~~~~~~~~~~
include/linux/syscalls.h:215:18: note: aliased declaration here
asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
^~~
include/linux/syscalls.h:207:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:198:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
ipc/mqueue.c:1398:1: note: in expansion of macro 'SYSCALL_DEFINE3'
SYSCALL_DEFINE3(mq_getsetattr, mqd_t, mqdes,
^~~~~~~~~~~~~~~
include/linux/syscalls.h:211:18: warning: 'sys_mq_notify' alias between functions of incompatible types 'long int(mqd_t, const struct sigevent *)' {aka 'long int(int, const struct sigevent *)'} and 'long int(long int, long int)' [-Wattribute-alias]
asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
^~~
include/linux/syscalls.h:207:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:197:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
ipc/mqueue.c:1342:1: note: in expansion of macro 'SYSCALL_DEFINE2'
SYSCALL_DEFINE2(mq_notify, mqd_t, mqdes,
^~~~~~~~~~~~~~~
include/linux/syscalls.h:215:18: note: aliased declaration here
asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
^~~
include/linux/syscalls.h:207:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:197:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
ipc/mqueue.c:1342:1: note: in expansion of macro 'SYSCALL_DEFINE2'
SYSCALL_DEFINE2(mq_notify, mqd_t, mqdes,
^~~~~~~~~~~~~~~
include/linux/syscalls.h:211:18: warning: 'sys_mq_timedreceive' alias between functions of incompatible types 'long int(mqd_t, char *, size_t, unsigned int *, const struct timespec *)' {aka 'long int(int, char *, long unsigned int, unsigned int *, const struct timespec *)'} and 'long int(long int, long int, long int, long int, long int)' [-Wattribute-alias]
asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
^~~
include/linux/syscalls.h:207:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:200:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
ipc/mqueue.c:1197:1: note: in expansion of macro 'SYSCALL_DEFINE5'
SYSCALL_DEFINE5(mq_timedreceive, mqd_t, mqdes, char __user *, u_msg_ptr,
^~~~~~~~~~~~~~~
include/linux/syscalls.h:215:18: note: aliased declaration here
asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
^~~
include/linux/syscalls.h:207:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:200:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
ipc/mqueue.c:1197:1: note: in expansion of macro 'SYSCALL_DEFINE5'
SYSCALL_DEFINE5(mq_timedreceive, mqd_t, mqdes, char __user *, u_msg_ptr,
^~~~~~~~~~~~~~~
include/linux/syscalls.h:211:18: warning: 'sys_mq_timedsend' alias between functions of incompatible types 'long int(mqd_t, const char *, size_t, unsigned int, const struct timespec *)' {aka 'long int(int, const char *, long unsigned int, unsigned int, const struct timespec *)'} and 'long int(long int, long int, long int, long int, long int)' [-Wattribute-alias]
asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
^~~
include/linux/syscalls.h:207:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:200:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
ipc/mqueue.c:1183:1: note: in expansion of macro 'SYSCALL_DEFINE5'
SYSCALL_DEFINE5(mq_timedsend, mqd_t, mqdes, const char __user *, u_msg_ptr,
^~~~~~~~~~~~~~~
include/linux/syscalls.h:215:18: note: aliased declaration here
asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
^~~
include/linux/syscalls.h:207:2: note: in expansion of macro '__SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:200:36: note: in expansion of macro 'SYSCALL_DEFINEx'
#define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~
ipc/mqueue.c:1183:1: note: in expansion of macro 'SYSCALL_DEFINE5'
SYSCALL_DEFINE5(mq_timedsend, mqd_t, mqdes, const char __user *, u_msg_ptr,
^~~~~~~~~~~~~~~
include/linux/syscalls.h:211:18: warning: 'sys_mq_unlink' alias between functions of incompatible types 'long int(const char *)' and 'long int(long int)' [-Wattribute-alias]
vim +/COMPAT_SYSCALL_DEFINE3 +1531 ipc/mqueue.c
0d060606 Al Viro 2017-06-27 1463
0d060606 Al Viro 2017-06-27 @1464 COMPAT_SYSCALL_DEFINE4(mq_open, const char __user *, u_name,
0d060606 Al Viro 2017-06-27 1465 int, oflag, compat_mode_t, mode,
0d060606 Al Viro 2017-06-27 1466 struct compat_mq_attr __user *, u_attr)
0d060606 Al Viro 2017-06-27 1467 {
0d060606 Al Viro 2017-06-27 1468 struct mq_attr attr, *p = NULL;
0d060606 Al Viro 2017-06-27 1469 if (u_attr && oflag & O_CREAT) {
0d060606 Al Viro 2017-06-27 1470 p = &attr;
0d060606 Al Viro 2017-06-27 1471 if (get_compat_mq_attr(&attr, u_attr))
0d060606 Al Viro 2017-06-27 1472 return -EFAULT;
0d060606 Al Viro 2017-06-27 1473 }
0d060606 Al Viro 2017-06-27 1474 return do_mq_open(u_name, oflag, mode, p);
0d060606 Al Viro 2017-06-27 1475 }
0d060606 Al Viro 2017-06-27 1476
0d060606 Al Viro 2017-06-27 1477 static int compat_prepare_timeout(const struct compat_timespec __user *p,
b9047726 Deepa Dinamani 2017-08-02 1478 struct timespec64 *ts)
0d060606 Al Viro 2017-06-27 1479 {
b9047726 Deepa Dinamani 2017-08-02 1480 if (compat_get_timespec64(ts, p))
0d060606 Al Viro 2017-06-27 1481 return -EFAULT;
b9047726 Deepa Dinamani 2017-08-02 1482 if (!timespec64_valid(ts))
0d060606 Al Viro 2017-06-27 1483 return -EINVAL;
0d060606 Al Viro 2017-06-27 1484 return 0;
0d060606 Al Viro 2017-06-27 1485 }
0d060606 Al Viro 2017-06-27 1486
0d060606 Al Viro 2017-06-27 @1487 COMPAT_SYSCALL_DEFINE5(mq_timedsend, mqd_t, mqdes,
0d060606 Al Viro 2017-06-27 1488 const char __user *, u_msg_ptr,
0d060606 Al Viro 2017-06-27 1489 compat_size_t, msg_len, unsigned int, msg_prio,
0d060606 Al Viro 2017-06-27 1490 const struct compat_timespec __user *, u_abs_timeout)
0d060606 Al Viro 2017-06-27 1491 {
b9047726 Deepa Dinamani 2017-08-02 1492 struct timespec64 ts, *p = NULL;
0d060606 Al Viro 2017-06-27 1493 if (u_abs_timeout) {
0d060606 Al Viro 2017-06-27 1494 int res = compat_prepare_timeout(u_abs_timeout, &ts);
0d060606 Al Viro 2017-06-27 1495 if (res)
0d060606 Al Viro 2017-06-27 1496 return res;
0d060606 Al Viro 2017-06-27 1497 p = &ts;
0d060606 Al Viro 2017-06-27 1498 }
0d060606 Al Viro 2017-06-27 1499 return do_mq_timedsend(mqdes, u_msg_ptr, msg_len, msg_prio, p);
0d060606 Al Viro 2017-06-27 1500 }
0d060606 Al Viro 2017-06-27 1501
0d060606 Al Viro 2017-06-27 @1502 COMPAT_SYSCALL_DEFINE5(mq_timedreceive, mqd_t, mqdes,
0d060606 Al Viro 2017-06-27 1503 char __user *, u_msg_ptr,
0d060606 Al Viro 2017-06-27 1504 compat_size_t, msg_len, unsigned int __user *, u_msg_prio,
0d060606 Al Viro 2017-06-27 1505 const struct compat_timespec __user *, u_abs_timeout)
0d060606 Al Viro 2017-06-27 1506 {
b9047726 Deepa Dinamani 2017-08-02 1507 struct timespec64 ts, *p = NULL;
0d060606 Al Viro 2017-06-27 1508 if (u_abs_timeout) {
0d060606 Al Viro 2017-06-27 1509 int res = compat_prepare_timeout(u_abs_timeout, &ts);
0d060606 Al Viro 2017-06-27 1510 if (res)
0d060606 Al Viro 2017-06-27 1511 return res;
0d060606 Al Viro 2017-06-27 1512 p = &ts;
0d060606 Al Viro 2017-06-27 1513 }
0d060606 Al Viro 2017-06-27 1514 return do_mq_timedreceive(mqdes, u_msg_ptr, msg_len, u_msg_prio, p);
0d060606 Al Viro 2017-06-27 1515 }
0d060606 Al Viro 2017-06-27 1516
0d060606 Al Viro 2017-06-27 @1517 COMPAT_SYSCALL_DEFINE2(mq_notify, mqd_t, mqdes,
0d060606 Al Viro 2017-06-27 1518 const struct compat_sigevent __user *, u_notification)
0d060606 Al Viro 2017-06-27 1519 {
0d060606 Al Viro 2017-06-27 1520 struct sigevent n, *p = NULL;
0d060606 Al Viro 2017-06-27 1521 if (u_notification) {
0d060606 Al Viro 2017-06-27 1522 if (get_compat_sigevent(&n, u_notification))
0d060606 Al Viro 2017-06-27 1523 return -EFAULT;
0d060606 Al Viro 2017-06-27 1524 if (n.sigev_notify == SIGEV_THREAD)
0d060606 Al Viro 2017-06-27 1525 n.sigev_value.sival_ptr = compat_ptr(n.sigev_value.sival_int);
0d060606 Al Viro 2017-06-27 1526 p = &n;
0d060606 Al Viro 2017-06-27 1527 }
0d060606 Al Viro 2017-06-27 1528 return do_mq_notify(mqdes, p);
0d060606 Al Viro 2017-06-27 1529 }
0d060606 Al Viro 2017-06-27 1530
0d060606 Al Viro 2017-06-27 @1531 COMPAT_SYSCALL_DEFINE3(mq_getsetattr, mqd_t, mqdes,
0d060606 Al Viro 2017-06-27 1532 const struct compat_mq_attr __user *, u_mqstat,
0d060606 Al Viro 2017-06-27 1533 struct compat_mq_attr __user *, u_omqstat)
0d060606 Al Viro 2017-06-27 1534 {
0d060606 Al Viro 2017-06-27 1535 int ret;
0d060606 Al Viro 2017-06-27 1536 struct mq_attr mqstat, omqstat;
0d060606 Al Viro 2017-06-27 1537 struct mq_attr *new = NULL, *old = NULL;
0d060606 Al Viro 2017-06-27 1538
0d060606 Al Viro 2017-06-27 1539 if (u_mqstat) {
0d060606 Al Viro 2017-06-27 1540 new = &mqstat;
0d060606 Al Viro 2017-06-27 1541 if (get_compat_mq_attr(new, u_mqstat))
0d060606 Al Viro 2017-06-27 1542 return -EFAULT;
0d060606 Al Viro 2017-06-27 1543 }
0d060606 Al Viro 2017-06-27 1544 if (u_omqstat)
0d060606 Al Viro 2017-06-27 1545 old = &omqstat;
0d060606 Al Viro 2017-06-27 1546
0d060606 Al Viro 2017-06-27 1547 ret = do_mq_getsetattr(mqdes, new, old);
0d060606 Al Viro 2017-06-27 1548 if (ret || !old)
0d060606 Al Viro 2017-06-27 1549 return ret;
0d060606 Al Viro 2017-06-27 1550
0d060606 Al Viro 2017-06-27 1551 if (put_compat_mq_attr(old, u_omqstat))
0d060606 Al Viro 2017-06-27 1552 return -EFAULT;
0d060606 Al Viro 2017-06-27 1553 return 0;
^1da177e Linus Torvalds 2005-04-16 1554 }
0d060606 Al Viro 2017-06-27 1555 #endif
^1da177e Linus Torvalds 2005-04-16 1556
:::::: The code at line 1531 was first introduced by commit
:::::: 0d0606060baefdb13d3d80dba1b4c816b0676e16 mqueue: move compat syscalls to native ones
:::::: TO: Al Viro <viro@zeniv.linux.org.uk>
:::::: CC: Al Viro <viro@zeniv.linux.org.uk>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 30488 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2018-05-29 16:18 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-29 16:17 [linux-stable-rc:linux-4.14.y 3879/4798] ipc/mqueue.c:1531:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE3' kbuild test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox