On 11/15/20 11:30 PM, Christian Borntraeger wrote: > > > On 13.11.20 23:52, Randy Dunlap wrote: >> Building on arch/s390/ flags this as an error, so add the >> __noreturn attribute modifier to prevent the build error. >> >> cc1: some warnings being treated as errors >> ../drivers/md/dm-writecache.c: In function 'persistent_memory_claim': >> ../drivers/md/dm-writecache.c:323:1: error: no return statement in function returning non-void [-Werror=return-type] > > ok with me, but I am asking why > > the unreachable macro is not good enough. For x86 it obviously is. > > form arch/s390/include/asm/bug.h > #define BUG() do { \ > __EMIT_BUG(0); \ > unreachable(); \ > } while (0) > Hi Christian, Good question. I don't see any guidance about when to use one or the other etc. I see __noreturn being used 109 times and unreachable(); being used 33 times, but only now that I look at them. That had nothing to do with why I used __noreturn in the patch. > >> >> Fixes: 48debafe4f2f ("dm: add writecache target") >> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> >> Cc: Mikulas Patocka <mpatocka@xxxxxxxxxx> >> Cc: Alasdair Kergon <agk@xxxxxxxxxx> >> Cc: Mike Snitzer <snitzer@xxxxxxxxxx> >> Cc: dm-devel@xxxxxxxxxx >> Cc: Heiko Carstens <hca@xxxxxxxxxxxxx> >> Cc: Vasily Gorbik <gor@xxxxxxxxxxxxx> >> Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx> >> Cc: linux-s390@xxxxxxxxxxxxxxx >> --- >> drivers/md/dm-writecache.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> --- linux-next-20201113.orig/drivers/md/dm-writecache.c >> +++ linux-next-20201113/drivers/md/dm-writecache.c >> @@ -317,7 +317,7 @@ err1: >> return r; >> } >> #else >> -static int persistent_memory_claim(struct dm_writecache *wc) >> +static int __noreturn persistent_memory_claim(struct dm_writecache *wc) >> { >> BUG(); >> } >> thanks. -- ~Randy