]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
dm crypt: avoid truncating the logical block size
authorEric Biggers <ebiggers@google.com>
Thu, 4 Jun 2020 19:01:26 +0000 (12:01 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Jun 2020 07:33:04 +0000 (09:33 +0200)
commit 64611a15ca9da91ff532982429c44686f4593b5f upstream.

queue_limits::logical_block_size got changed from unsigned short to
unsigned int, but it was forgotten to update crypt_io_hints() to use the
new type.  Fix it.

Fixes: ad6bf88a6c19 ("block: fix an integer overflow in logical block size")
Cc: stable@vger.kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/dm-crypt.c

index 3df90daba89eed000b563a84fd1aee09f69587ea..a1dcb8675484a6b98e50baedb3a08064db1e355d 100644 (file)
@@ -3274,7 +3274,7 @@ static void crypt_io_hints(struct dm_target *ti, struct queue_limits *limits)
        limits->max_segment_size = PAGE_SIZE;
 
        limits->logical_block_size =
-               max_t(unsigned short, limits->logical_block_size, cc->sector_size);
+               max_t(unsigned, limits->logical_block_size, cc->sector_size);
        limits->physical_block_size =
                max_t(unsigned, limits->physical_block_size, cc->sector_size);
        limits->io_min = max_t(unsigned, limits->io_min, cc->sector_size);