2008-06-02 18:11:44

by Ben Collins

[permalink] [raw]
Subject: [PATCH] FIx crash in mmc_block on 64-bit

Fairly simple. "dev_use" was being allocated as a zero length array
because of bad math on 64-bit systems causing a crash in
find_first_zero_bit(). One-liner follows:

diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index 91ded3e..f9ad960 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -46,7 +46,7 @@
#define MMC_SHIFT 3
#define MMC_NUM_MINORS (256 >> MMC_SHIFT)

-static unsigned long dev_use[MMC_NUM_MINORS/(8*sizeof(unsigned long))];
+static DECLARE_BITMAP(dev_use, MMC_NUM_MINORS);

/*
* There is one mmc_blk_data per slot.


2008-06-05 21:25:46

by Pierre Ossman

[permalink] [raw]
Subject: Re: [PATCH] FIx crash in mmc_block on 64-bit

On Mon, 02 Jun 2008 13:39:19 -0400
Ben Collins <[email protected]> wrote:

> Fairly simple. "dev_use" was being allocated as a zero length array
> because of bad math on 64-bit systems causing a crash in
> find_first_zero_bit(). One-liner follows:
>

A signed-off-by to make things nice and proper, please. :)

You can add an Acked-by: Pierre Ossman <[email protected]> and pass it
on directly to Linus.

Rgds
--
-- Pierre Ossman

Linux kernel, MMC maintainer http://www.kernel.org
rdesktop, core developer http://www.rdesktop.org

2008-06-05 23:12:49

by Ben Collins

[permalink] [raw]
Subject: Re: [PATCH] FIx crash in mmc_block on 64-bit

On Thu, 2008-06-05 at 23:25 +0200, Pierre Ossman wrote:
> On Mon, 02 Jun 2008 13:39:19 -0400
> Ben Collins <[email protected]> wrote:
>
> > Fairly simple. "dev_use" was being allocated as a zero length array
> > because of bad math on 64-bit systems causing a crash in
> > find_first_zero_bit(). One-liner follows:
> >
>
> A signed-off-by to make things nice and proper, please. :)
>
> You can add an Acked-by: Pierre Ossman <[email protected]> and pass it
> on directly to Linus.

Not sure how I missed the signed-off-by, but resent to Linus with your
ack. Thanks