lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 31 Aug 2018 00:04:21 +0100
From:   Dmitry Safonov <>
To:     Igor Stoppa <>,
Cc:     Igor Stoppa <>, Shuah Khan <>
Subject: Re: [PATCH 05/23] selftest: vm: add unlikely() to BUG_ON()

On Thu, 2018-08-30 at 23:57 +0100, Dmitry Safonov wrote:
> Hi Igor,
> On Fri, 2018-08-31 at 01:34 +0300, Igor Stoppa wrote:
> > BUG_ON() is unlikely() to BUG()
> This selftest runs in userspace..
> So, we should define the macro somehow, as i.e:
> rseq/rseq.h:#define rseq_unlikely(x)    __builtin_expect(!!(x), 0)
> Otherwise,
> [selftests]$ make vm/map_populate
> cc     vm/map_populate.c   -o vm/map_populate
> vm/map_populate.c: In function ‘parent_f’:
> vm/map_populate.c:26:7: warning: implicit declaration of function
> ‘unlikely’; did you mean ‘unlinkat’? [-Wimplicit-function-
> declaration]
>    if (unlikely(condition)) {     \
>        ^
> vm/map_populate.c:38:2: note: in expansion of macro ‘BUG_ON’
>   BUG_ON(ret <= 0, "read(sock)");
>   ^~~~~~
> /tmp/cc7evGVG.o: In function `parent_f':
> map_populate.c:(.text+0x3d): undefined reference to `unlikely'
> map_populate.c:(.text+0xbb): undefined reference to `unlikely'
> map_populate.c:(.text+0x135): undefined reference to `unlikely'
> map_populate.c:(.text+0x1b0): undefined reference to `unlikely'
> Not sure if we care for this at all for userspace test.
> I don't mind as it runs each time by kbuild robot and cumulatively
> may
> save something. But it's better be at least compile-tested.

JFI, there are a plenty of definitions for unlikely():
[linux]$ git grep 'define unlikely' tools
+rseq_unlikely() from tools/testing/selftests/rseq/rseq.h

Probably, the one from "tools/include/linux/compiler.h" can be used in
tools directory.


Powered by blists - more mailing lists