Commit b2cada73 authored by Ulf Hansson's avatar Ulf Hansson

mmc: core: Use mmc_get_ext_csd() instead of mmc_send_ext_csd()

By using mmc_get_ext_csd() in favor of mmc_send_ext_csd, we decrease
code duplication.
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 86817ffb
...@@ -731,27 +731,16 @@ int mmc_read_bkops_status(struct mmc_card *card) ...@@ -731,27 +731,16 @@ int mmc_read_bkops_status(struct mmc_card *card)
int err; int err;
u8 *ext_csd; 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); 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); mmc_release_host(card->host);
if (err) if (err)
goto out; return err;
card->ext_csd.raw_bkops_status = ext_csd[EXT_CSD_BKOPS_STATUS]; 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]; card->ext_csd.raw_exception_status = ext_csd[EXT_CSD_EXP_EVENTS_STATUS];
out:
kfree(ext_csd); kfree(ext_csd);
return err; return 0;
} }
EXPORT_SYMBOL(mmc_read_bkops_status); EXPORT_SYMBOL(mmc_read_bkops_status);
......
...@@ -291,14 +291,8 @@ static int mmc_ext_csd_open(struct inode *inode, struct file *filp) ...@@ -291,14 +291,8 @@ static int mmc_ext_csd_open(struct inode *inode, struct file *filp)
if (!buf) if (!buf)
return -ENOMEM; return -ENOMEM;
ext_csd = kmalloc(512, GFP_KERNEL);
if (!ext_csd) {
err = -ENOMEM;
goto out_free;
}
mmc_get_card(card); mmc_get_card(card);
err = mmc_send_ext_csd(card, ext_csd); err = mmc_get_ext_csd(card, &ext_csd);
mmc_put_card(card); mmc_put_card(card);
if (err) if (err)
goto out_free; goto out_free;
...@@ -314,7 +308,6 @@ static int mmc_ext_csd_open(struct inode *inode, struct file *filp) ...@@ -314,7 +308,6 @@ static int mmc_ext_csd_open(struct inode *inode, struct file *filp)
out_free: out_free:
kfree(buf); kfree(buf);
kfree(ext_csd);
return err; return err;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment