On Thu, Jun 2, 2016 at 10:31 AM, Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: > + Linus > > On 29 May 2016 at 09:04, Chen-Yu Tsai <wens@xxxxxxxx> wrote: >> When IS_ERR_VALUE was removed from the mmc core code, it was replaced >> with a simple not-zero check. This does not work, as the value checked >> is the return value for mmc_select_bus_width, which returns the set >> bit width on success. This made eMMC modes higher than HS-DDR unusable. >> >> Fix this by checking for a positive return value instead. >> >> Fixes: 287980e49ffc ("remove lots of IS_ERR_VALUE abuses") >> Cc: Arnd Bergmann <arnd@xxxxxxxx> >> Signed-off-by: Chen-Yu Tsai <wens@xxxxxxxx> >> --- >> drivers/mmc/core/mmc.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c >> index c984321d1881..aafb73d080ca 100644 >> --- a/drivers/mmc/core/mmc.c >> +++ b/drivers/mmc/core/mmc.c >> @@ -1276,7 +1276,7 @@ static int mmc_select_hs200(struct mmc_card *card) >> * switch to HS200 mode if bus width is set successfully. >> */ >> err = mmc_select_bus_width(card); >> - if (!err) { >> + if (err > 0) { >> val = EXT_CSD_TIMING_HS200 | >> card->drive_strength << EXT_CSD_DRV_STR_SHIFT; >> err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, >> @@ -1583,7 +1583,7 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, >> } else if (mmc_card_hs(card)) { >> /* Select the desired bus width optionally */ >> err = mmc_select_bus_width(card); >> - if (!err) { >> + if (err > 0) { > > As pointed out in the review by Björn, to restore the old behaviour we > should check for "err >= 0". > No need to send a new patch, I can amend the current version. > >> err = mmc_select_hs_ddr(card); >> if (err) >> goto free_card; >> -- >> 2.8.1 >> > > Finally, I am a little concerned about the commit 287980e49ffc > ("remove lots of IS_ERR_VALUE abuses") which introduced this > regression. > > Surprisingly the IS_ERR_VALUE():s aren't being replaced by equivalent > checks, so perhaps there a more regressions. Moreover, I wonder why I > wasn't being on cc/to list when this patch was submitted a few days > ago, perhaps my review could prevented the regression from even > happen. > > Anyway, let's fix this now! I will pick up $subject patch as fix asap... > > and Arnd, can you please double-check that the commit 287980e49ffc > doesn’t seems to regress anything else!? If only the 287980e49ffc could sit in linux-next for few days before reaching v4.7-rc1... Could you please pick up the fix soon? Maybe directly by Linus? Best regards, Krzysztof -- 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