Re: [PATCH] block: t10-pi: fix -Wswitch warning

From: Nick Desaulniers
Date: Thu Sep 19 2019 - 12:21:27 EST


On Thu, Sep 19, 2019 at 6:57 AM Arnd Bergmann <arnd@xxxxxxxx> wrote:
>
> Changing the switch() statement to symbolic constants made
> the compiler (at least clang-9, did not check gcc) notice that
> there is one enum value that is not handled here:
>
> block/t10-pi.c:62:11: error: enumeration value 'T10_PI_TYPE0_PROTECTION' not handled in switch [-Werror,-Wswitch]
>
> Add another case for the missing value and do nothing there
> based on the assumption that the code was working correctly
> already.
>
> Fixes: 9b2061b1a262 ("block: use symbolic constants for t10_pi type")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Reported-by: kbuild test robot <lkp@xxxxxxxxx>
https://groups.google.com/forum/#!topic/clang-built-linux/awgY7hmSCCM
Hard to say what's the right thing to do here, there's not a lot of
other switches on this variable. That enum value barely even shows up
in the kernel. Since this is no functional change:
Acked-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
Thanks for sending the patch.

> ---
> block/t10-pi.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/block/t10-pi.c b/block/t10-pi.c
> index 0c0120a672f9..055fac923946 100644
> --- a/block/t10-pi.c
> +++ b/block/t10-pi.c
> @@ -60,6 +60,8 @@ static blk_status_t t10_pi_verify(struct blk_integrity_iter *iter,
> __be16 csum;
>
> switch (type) {
> + case T10_PI_TYPE0_PROTECTION:
> + break;
> case T10_PI_TYPE1_PROTECTION:
> case T10_PI_TYPE2_PROTECTION:
> if (pi->app_tag == T10_PI_APP_ESCAPE)
> --
--
Thanks,
~Nick Desaulniers