Re: [PATCH 2/7] zram: Prevent overflow in logical block size

From: Pekka Enberg
Date: Wed Jan 26 2011 - 12:42:51 EST


On Wed, Jan 26, 2011 at 7:23 PM, Robert Jennings <rcj@xxxxxxxxxxxxxxxxxx> wrote:
> On a 64K page kernel, the value PAGE_SIZE passed to
> blk_queue_logical_block_size would overflow the logical block size
> argument (resulting in setting it to 0).
>
> Take the minimum of PAGE_SIZE or 4096 and use this for the block device
> logical block size.
>
> Signed-off-by: Robert Jennings <rcj@xxxxxxxxxxxxxxxxxx>
> ---
>  drivers/staging/zram/zram_drv.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/staging/zram/zram_drv.c b/drivers/staging/zram/zram_drv.c
> index d0e9e02..d5e0275 100644
> --- a/drivers/staging/zram/zram_drv.c
> +++ b/drivers/staging/zram/zram_drv.c
> @@ -621,7 +621,8 @@ static int create_device(struct zram *zram, int device_id)
>         * and n*PAGE_SIZED sized I/O requests.
>         */
>        blk_queue_physical_block_size(zram->disk->queue, PAGE_SIZE);
> -       blk_queue_logical_block_size(zram->disk->queue, PAGE_SIZE);
> +       blk_queue_logical_block_size(zram->disk->queue,
> +                       (unsigned short) min_t(unsigned int, PAGE_SIZE, 4096));

I don't get it. No architecture supports PAGE_SIZE less than 4K so
that expression always ends up being 4096, no?

>        blk_queue_io_min(zram->disk->queue, PAGE_SIZE);
>        blk_queue_io_opt(zram->disk->queue, PAGE_SIZE);
>
> --
> 1.6.0.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/