Re: [RFC][PATCH v2] mmc_block: Allow more than 8 partitions per card

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 22 October 2015 at 19:00, John Stultz <john.stultz@xxxxxxxxxx> wrote:
> From: Colin Cross <ccross@xxxxxxxxxxx>
>
> It is quite common for Android devices to utilize more
> then 8 partitions on internal eMMC storage.
>
> The vanilla kernel can support this via
> CONFIG_MMC_BLOCK_MINORS, however that solution caps the
> system to 256 minors total, which limits the number of
> mmc cards the system can support.
>
> This patch, which has been carried for quite awhile in
> the AOSP common tree, provides an alternative solution
> that doesn't seem to limit the total card count. So I
> wanted to submit it for consideration upstream.
>
> This patch sets the GENHD_FL_EXT_DEVT flag, which will
> allocate minor number in major 259 for partitions past
> disk->minors.
>
> It also removes the use of disk_devt to determine devidx
> from md->disk. md->disk->first_minor is always initialized
> from devidx and can always be used to recover it.
>
> Thoughts or feedback would be greatly appreciated.
>
> Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
> Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
> Cc: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
> Cc: Chuanxiao Dong <chuanxiao.dong@xxxxxxxxx>
> Cc: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>
> Cc: Austin S Hemmelgarn <ahferroin7@xxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>
> Cc: Android Kernel Team <kernel-team@xxxxxxxxxxx>
> Cc: linux-mmc@xxxxxxxxxxxxxxx
> Signed-off-by: Colin Cross <ccross@xxxxxxxxxxx>
> [jstultz: Added context to commit message]
> Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>

Thanks, applied for next!

I did some minor changes to the change-log, and updated the prefix of
the commit msg header.

Kind regards
Uffe

> ---
> v2: Added context to commit message about CONFIG_MMC_BLOCK_MINORS
>     and its limitations.
>
>  drivers/mmc/card/block.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
> index c742cfd..564436e 100644
> --- a/drivers/mmc/card/block.c
> +++ b/drivers/mmc/card/block.c
> @@ -172,11 +172,7 @@ static struct mmc_blk_data *mmc_blk_get(struct gendisk *disk)
>
>  static inline int mmc_get_devidx(struct gendisk *disk)
>  {
> -       int devmaj = MAJOR(disk_devt(disk));
> -       int devidx = MINOR(disk_devt(disk)) / perdev_minors;
> -
> -       if (!devmaj)
> -               devidx = disk->first_minor / perdev_minors;
> +       int devidx = disk->first_minor / perdev_minors;
>         return devidx;
>  }
>
> @@ -2162,6 +2158,7 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card,
>         md->disk->queue = md->queue.queue;
>         md->disk->driverfs_dev = parent;
>         set_disk_ro(md->disk, md->read_only || default_ro);
> +       md->disk->flags = GENHD_FL_EXT_DEVT;
>         if (area_type & (MMC_BLK_DATA_AREA_RPMB | MMC_BLK_DATA_AREA_BOOT))
>                 md->disk->flags |= GENHD_FL_NO_PART_SCAN;
>
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux