return 0;
 }
 
-int mmc_send_csd(struct mmc_card *card, u32 *csd)
+static int mmc_spi_send_csd(struct mmc_card *card, u32 *csd)
 {
        int ret, i;
        __be32 *csd_tmp;
 
-       if (!mmc_host_is_spi(card->host))
-               return mmc_send_cxd_native(card->host, card->rca << 16,
-                               csd, MMC_SEND_CSD);
-
        csd_tmp = kzalloc(16, GFP_KERNEL);
        if (!csd_tmp)
                return -ENOMEM;
        return ret;
 }
 
+int mmc_send_csd(struct mmc_card *card, u32 *csd)
+{
+       if (mmc_host_is_spi(card->host))
+               return mmc_spi_send_csd(card, csd);
+
+       return mmc_send_cxd_native(card->host, card->rca << 16, csd,
+                               MMC_SEND_CSD);
+}
+
 static int mmc_spi_send_cid(struct mmc_host *host, u32 *cid)
 {
        int ret, i;