On 18 August 2014 12:00, Barry Song <barry.s...@csr.com> wrote: > From: Minda Chen <minda.c...@csr.com> > > After suspending, unplug the sdcard, and set sd WP lock, > insert it again, then resume the system. resume codes do > not check the the sdcard write-proctect lock. now check > it. > > Signed-off-by: Minda Chen <minda.c...@csr.com> > Signed-off-by: Barry Song <baohua.s...@csr.com> > --- > drivers/mmc/core/sd.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c > index 0c44510..890557a 100644 > --- a/drivers/mmc/core/sd.c > +++ b/drivers/mmc/core/sd.c > @@ -910,6 +910,7 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 > ocr, > int err; > u32 cid[4]; > u32 rocr = 0; > + bool oldro, ro; > > BUG_ON(!host); > WARN_ON(!host->claimed); > @@ -922,6 +923,12 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 > ocr, > if (memcmp(cid, oldcard->raw_cid, sizeof(cid)) != 0) > return -ENOENT; > > + if (host->ops->get_ro) { > + ro = host->ops->get_ro(host) ? true : false; > + oldro = mmc_card_readonly(oldcard) ? true : false; > + if (oldro ^ ro) > + return -ENOENT; > + }
Seems like this code belongs better in mmc_sd_setup_card(). Could you try moving it there. Kind regards Uffe > card = oldcard; > } else { > /* > -- > 2.0.4 > > > > Member of the CSR plc group of companies. CSR plc registered in England and > Wales, registered number 4187346, registered office Churchill House, > Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom > More information can be found at www.csr.com. Keep up to date with CSR on our > technical blog, www.csr.com/blog, CSR people blog, www.csr.com/people, > YouTube, www.youtube.com/user/CSRplc, Facebook, > www.facebook.com/pages/CSR/191038434253534, or follow us on Twitter at > www.twitter.com/CSR_plc. > New for 2014, you can now access the wide range of products powered by aptX > at www.aptx.com. -- 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