lkml.org 
[lkml]   [2009]   [Mar]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: + mmc-align-data-size-for-host-which-only-supports-power-of-2-block.patch added to -mm tree
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?


\
 
 \ /
  Last update: 2009-03-06 23:45    [W:0.103 / U:0.012 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site