* Re: + mmc-align-data-size-for-host-which-only-supports-power-of-2-block.patch added to -mm tree
[not found] <200903062208.n26M8NSH004472@imap1.linux-foundation.org>
@ 2009-03-06 22:39 ` Jiri Slaby
0 siblings, 0 replies; only message in thread
From: Jiri Slaby @ 2009-03-06 22:39 UTC (permalink / raw)
To: linux-kernel; +Cc: mm-commits, cooloney, cliff.cai, drzeus
On 6.3.2009 23:08, akpm@linux-foundation.org wrote:
> Subject: mmc: align data size for host which only supports power-of-2 block
> From: Bryan Wu<cooloney@kernel.org>
>
>
> Signed-off-by: Cliff Cai<cliff.cai@analog.com>
> Signed-off-by: Bryan Wu<cooloney@kernel.org>
> Cc: Pierre Ossman<drzeus@drzeus.cx>
> Signed-off-by: Andrew Morton<akpm@linux-foundation.org>
> ---
> --- a/drivers/mmc/core/core.c~mmc-align-data-size-for-host-which-only-supports-power-of-2-block
> +++ a/drivers/mmc/core/core.c
> @@ -321,7 +321,13 @@ unsigned int mmc_align_data_size(struct
> * the core about its problems yet, so for now we just 32-bit
> * align the size.
> */
> - sz = ((sz + 3) / 4) * 4;
> +
> + /* Align size for host which only supports power-of-2 block */
> + if (card->host->powerof2_block) {
> + if (sz& (sz - 1))
> + sz = 1<< fls(sz);
Is there a reason why not use
sz = roundup_pow_of_two(sz)
instead of the two lines?
> + } else
> + sz = ((sz + 3) / 4) * 4;
While you are at it:
sz = roundup(sz, 4);
> --- a/include/linux/mmc/host.h~mmc-align-data-size-for-host-which-only-supports-power-of-2-block
> +++ a/include/linux/mmc/host.h
> @@ -162,6 +162,7 @@ struct mmc_host {
> struct dentry *debugfs_root;
>
> unsigned long private[0] ____cacheline_aligned;
> + unsigned int powerof2_block; /* host only supports power-of-2 block */
Does this have any users? The patch description is too bare. I'm trying
to cope with one mmc device failure, may this help?
^ permalink raw reply [flat|nested] only message in thread