From: "Grégory Soutadé" <gsoutade@neotion.com>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Chris Ball <chris@printf.net>,
Seungwon Jeon <tgih.jun@samsung.com>,
Jaehoon Chung <jh80.chung@samsung.com>,
linux-mmc <linux-mmc@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] mmc: check EXT_CSD_PARTITION_SETTING_COMPLETED before creating partitions
Date: Thu, 14 Aug 2014 15:27:59 +0200 [thread overview]
Message-ID: <53ECB95F.2030207@neotion.com> (raw)
In-Reply-To: <CAPDyKFpjYqVUZ8GHB76gD8pOx_eMg9ecvbWrMEfbhEd5ffk7mw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3721 bytes --]
Le 14/08/2014 13:46, Ulf Hansson a écrit :
> On 13 August 2014 11:20, Grégory Soutadé <gsoutade@neotion.com> wrote:
>> Le 13/08/2014 10:36, Ulf Hansson a écrit :
>>> On 17 July 2014 16:57, Grégory Soutadé <gsoutade@neotion.com> wrote:
>>>> Create MMC general purpose partitions only if
>>>> EXT_CSD_PARTITION_SETTING_COMPLETED bit is set.
>>>> Some tools may set general purpose partition size(s) but fail or stop
>>>> without finalize.
>>>> Another case is to set invalid partition size(s).
>>>>
>>>> Signed-off-by: Grégory Soutadé <gsoutade@neotion.com>
>>>> ---
>>>> drivers/mmc/core/mmc.c | 15 +++++++++++----
>>>> include/linux/mmc/mmc.h | 2 ++
>>>> 2 files changed, 13 insertions(+), 4 deletions(-)
>>>>
>>>> From commit b6603fe574af289dbe9eb9fb4c540bca04f5a053 in master linux tree.
>>>>
>>>> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
>>>> index 793c6f7..b9fe211 100644
>>>> --- a/drivers/mmc/core/mmc.c
>>>> +++ b/drivers/mmc/core/mmc.c
>>>> @@ -471,10 +471,17 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd)
>>>> ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3];
>>>> part_size *= (size_t)(hc_erase_grp_sz *
>>>> hc_wp_grp_sz);
>>>> - mmc_part_add(card, part_size << 19,
>>>> - EXT_CSD_PART_CONFIG_ACC_GP0 + idx,
>>>> - "gp%d", idx, false,
>>>> - MMC_BLK_DATA_AREA_GP);
>>>> + if (ext_csd[EXT_CSD_PARTITION_SETTING_COMPLETED] &
>>>> + EXT_CSD_PART_SETTING_COMPLETED) {
>>>
>>> Some minor comments here.
>>>
>>> I think you could move this if statement up and into the previous "if"
>>> where we check for "ext_csd[EXT_CSD_PARTITION_SUPPORT] &
>>> EXT_CSD_PART_SUPPORT_PART_EN".
>>>
>>> Additionally, please run checkpatch.
>>>
>>> Kind regards
>>> Uffe
>>
>> Hello,
>>
>> I didn't put the if statement above to warn user in case of bad partitioning.
>> I don't want the kernel to silently ignore this error.
>
> Fair enough.
>
> Still I am wondering whether hc_erase_grp_sz, hc_wp_grp_sz and
> enhanced_area_en should be updated if
> EXT_CSD_PARTITION_SETTING_COMPLETED isn't set. That's the case in
> your patch.
I was focused on partitions and I didn't pay attention on enhanced area.
JEDEC says that partitioning implies :
* Configure general purpose partitions attributes and sizes
* Configure enhanced user area offset, attributes and size
and finally set EXT_CSD_PARTITION_SETTING_COMPLETED.
Thus these two parts must checks for setting completed before
computing values.
Plus, "enhanced_area_en" attribute is set whether or not there is an
enhanced area defined. I looked at the code, and the only usage of it
is to set EXT_CSD_ERASE_GROUP_DEF and compute erase size again.
I suggest using "partition_setting_completed" identifier which is common
to the two functions and requires EXT_CSD_ERASE_GROUP_DEF to be set.
If you're ok with that, I'll submit another patch.
Best regards
Grégory Soutadé
>
>>
>> checkpatch has been run before sending this patch, I know there are two lines
>> with two extra characters, but names used here are quite long. I hope it will
>> not block upstream inclusion.
>
> The mmc_read_ext_csd() is not one of the nicest piece of code, but for
> sure we should not move on making it worse. If you need to move code
> into separate function to prevent checkpatch warnings, please do so.
>
> Kind regards
> Uffe
>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
next prev parent reply other threads:[~2014-08-14 13:30 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-17 14:57 [PATCH] mmc: check EXT_CSD_PARTITION_SETTING_COMPLETED before creating partitions Grégory Soutadé
2014-07-17 14:57 ` Grégory Soutadé
2014-08-13 8:36 ` Ulf Hansson
2014-08-13 9:20 ` Grégory Soutadé
2014-08-14 11:46 ` Ulf Hansson
2014-08-14 13:27 ` Grégory Soutadé [this message]
2014-08-15 8:17 ` Ulf Hansson
2014-08-18 13:12 ` [PATCH v3 0001/0002] mmc: Replace ext_csd "enhanced_area_en" attribute by "partition_setting_completed" Grégory Soutadé
2014-09-11 6:38 ` [PATCH v4 0001/0003] mmc: Move code that manages user area and gp partitions into functions Grégory Soutadé
2014-09-12 14:31 ` [PATCH v5 0000/0003] mmc: EXT_CSD_PARTITION_SETTING_COMPLETED bit not checked Grégory Soutadé
2014-09-12 14:31 ` Grégory Soutadé
2014-09-15 15:47 ` [PATCH v6 " Grégory Soutadé
2014-09-15 15:47 ` Grégory Soutadé
2014-09-12 14:31 ` [PATCH v5 0001/0003] mmc: Move code that manages user area and gp partitions into functions Grégory Soutadé
2014-09-15 15:47 ` [PATCH v6 " Grégory Soutadé
2014-09-17 22:12 ` Ulf Hansson
2014-09-12 14:31 ` [PATCH v5 0002/0003] mmc: Replace "enhanced_area_en" attribute by "partition_setting_completed" Grégory Soutadé
2014-09-15 4:20 ` Jaehoon Chung
2014-09-15 15:47 ` [PATCH v6 " Grégory Soutadé
2014-09-17 22:12 ` Ulf Hansson
2014-09-12 14:31 ` [PATCH v5 0003/0003] mmc: Checks EXT_CSD_PARTITION_SETTING_COMPLETED before partitions computation Grégory Soutadé
2014-09-15 15:47 ` [PATCH v6 " Grégory Soutadé
2014-09-17 22:13 ` Ulf Hansson
2014-09-11 6:38 ` [PATCH v4 0002/0003] mmc: Replace "enhanced_area_en" attribute by "partition_setting_completed" Grégory Soutadé
2014-09-11 9:46 ` Ulf Hansson
2014-09-11 6:38 ` [PATCH v4 0003/0003] mmc: Checks EXT_CSD_PARTITION_SETTING_COMPLETED before partitions computation Grégory Soutadé
2014-08-18 13:12 ` [PATCH v3 0002/0002] mmc: Checks EXT_CSD_PARTITION_SETTING_COMPLETED bit " Grégory Soutadé
2014-09-08 12:15 ` Ulf Hansson
2014-08-18 10:49 ` [PATCH v2 0001/0002] mmc: check EXT_CSD_PARTITION_SETTING_COMPLETED before creating partitions Grégory Soutadé
2014-08-18 10:50 ` [PATCH v2 0002/0002] " Grégory Soutadé
2014-08-18 12:15 ` Ulf Hansson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53ECB95F.2030207@neotion.com \
--to=gsoutade@neotion.com \
--cc=chris@printf.net \
--cc=jh80.chung@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=tgih.jun@samsung.com \
--cc=ulf.hansson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.