Re: [4.9.1] Compiler warnings in bcache
From: Coly Li <hidden>
Date: 2017-01-10 05:41:33
On 2017/1/10 上午2:34, Kai Krakow wrote:
When compiling kernel 4.9.1, I'm seeing the following warnings:
In file included from ./include/linux/bio.h:23:0,
from drivers/md/bcache/bcache.h:181,
from drivers/md/bcache/writeback.c:9:
drivers/md/bcache/writeback.c: In Funktion »bch_cached_dev_writeback_init«:
./include/linux/ioprio.h:15:73: Warnung: Klammern um Arithmetik in Operand von »|« empfohlen [-Wparentheses]
#define IOPRIO_PRIO_VALUE(class, data) (((class) << IOPRIO_CLASS_SHIFT) | data)
^
drivers/md/bcache/writeback.c:515:25: Anmerkung: bei Substitution des Makros »IOPRIO_PRIO_VALUE«
dc->ioprio_bypass = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, IOPRIO_BE_NR-1);
^
It suggests to put parentheses around the expression with the "|"
operand. No other kernel source files show warnings for me, so maybe it
should be fixed.
I would create a patch myself but I'm not sure if it would be correct
and sufficient to put parenthesis around "data" like this:
#define IOPRIO_PRIO_VALUE(class, data) (((class) << IOPRIO_CLASS_SHIFT) | (data))Hi Kai Krakow, This fix is necessary, please send a patch to IOPRIO_PRIO_VALUE(). BTW, I don't see dc->ioprio_bypass from upstream kernel source, is it from a development tree ? -- Coly Li