On 22 October 2015 at 19:00, John Stultz <john.stu...@linaro.org> wrote:
> From: Colin Cross <ccr...@android.com>
>
> 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.hans...@linaro.org>
> Cc: Adrian Hunter <adrian.hun...@intel.com>
> Cc: Ben Hutchings <b...@decadent.org.uk>
> Cc: Chuanxiao Dong <chuanxiao.d...@intel.com>
> Cc: Shawn Lin <shawn....@rock-chips.com>
> Cc: Austin S Hemmelgarn <ahferro...@gmail.com>
> Cc: Arnd Bergmann <a...@arndb.de>
> Cc: Android Kernel Team <kernel-t...@android.com>
> Cc: linux-mmc@vger.kernel.org
> Signed-off-by: Colin Cross <ccr...@android.com>
> [jstultz: Added context to commit message]
> Signed-off-by: John Stultz <john.stu...@linaro.org>

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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to