mmc: core: Use mmc_get_ext_csd() instead of mmc_send_ext_csd()
authorUlf Hansson <ulf.hansson@linaro.org>
Fri, 17 Oct 2014 09:48:23 +0000 (11:48 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 10 Nov 2014 11:40:44 +0000 (12:40 +0100)
By using mmc_get_ext_csd() in favor of mmc_send_ext_csd, we decrease
code duplication.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/core/core.c
drivers/mmc/core/debugfs.c

index 953f17c5fcde2ef1f37d466a7994ba35dbb14875..943f9051ec6dacd487a3bc2e01db06e20cee9cdc 100644 (file)
@@ -731,27 +731,16 @@ int mmc_read_bkops_status(struct mmc_card *card)
        int err;
        u8 *ext_csd;
 
-       /*
-        * In future work, we should consider storing the entire ext_csd.
-        */
-       ext_csd = kmalloc(512, GFP_KERNEL);
-       if (!ext_csd) {
-               pr_err("%s: could not allocate buffer to receive the ext_csd.\n",
-                      mmc_hostname(card->host));
-               return -ENOMEM;
-       }
-
        mmc_claim_host(card->host);
-       err = mmc_send_ext_csd(card, ext_csd);
+       err = mmc_get_ext_csd(card, &ext_csd);
        mmc_release_host(card->host);
        if (err)
-               goto out;
+               return err;
 
        card->ext_csd.raw_bkops_status = ext_csd[EXT_CSD_BKOPS_STATUS];
        card->ext_csd.raw_exception_status = ext_csd[EXT_CSD_EXP_EVENTS_STATUS];
-out:
        kfree(ext_csd);
-       return err;
+       return 0;
 }
 EXPORT_SYMBOL(mmc_read_bkops_status);
 
index 91eb162232462d6f5f142904d9c4fea5b9e65451..e9142108a6c6d486d3ac15ba4cb8a317d1fd62b2 100644 (file)
@@ -291,14 +291,8 @@ static int mmc_ext_csd_open(struct inode *inode, struct file *filp)
        if (!buf)
                return -ENOMEM;
 
-       ext_csd = kmalloc(512, GFP_KERNEL);
-       if (!ext_csd) {
-               err = -ENOMEM;
-               goto out_free;
-       }
-
        mmc_get_card(card);
-       err = mmc_send_ext_csd(card, ext_csd);
+       err = mmc_get_ext_csd(card, &ext_csd);
        mmc_put_card(card);
        if (err)
                goto out_free;
@@ -314,7 +308,6 @@ static int mmc_ext_csd_open(struct inode *inode, struct file *filp)
 
 out_free:
        kfree(buf);
-       kfree(ext_csd);
        return err;
 }