OSDN Git Service

memstick: avoid out-of-range warning
authorArnd Bergmann <arnd@arndb.de>
Mon, 27 Sep 2021 09:44:47 +0000 (11:44 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 12 Oct 2021 08:21:20 +0000 (10:21 +0200)
clang-14 complains about a sanity check that always passes when the
page size is 64KB or larger:

drivers/memstick/core/ms_block.c:1739:21: error: result of comparison of constant 65536 with expression of type 'unsigned short' is always false [-Werror,-Wtautological-constant-out-of-range-compare]
        if (msb->page_size > PAGE_SIZE) {
            ~~~~~~~~~~~~~~ ^ ~~~~~~~~~

This is fine, it will still work on all architectures, so just shut
up that warning with a cast.

Fixes: 0ab30494bc4f ("memstick: add support for legacy memorysticks")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20210927094520.696665-1-arnd@kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/memstick/core/ms_block.c

index 772edbd..0cda6c6 100644 (file)
@@ -1736,7 +1736,7 @@ static int msb_init_card(struct memstick_dev *card)
        msb->pages_in_block = boot_block->attr.block_size * 2;
        msb->block_size = msb->page_size * msb->pages_in_block;
 
-       if (msb->page_size > PAGE_SIZE) {
+       if ((size_t)msb->page_size > PAGE_SIZE) {
                /* this isn't supported by linux at all, anyway*/
                dbg("device page %d size isn't supported", msb->page_size);
                return -EINVAL;