]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/mmc/core/sdio_ops.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
[linux-2.6-omap-h63xx.git] / drivers / mmc / core / sdio_ops.c
index 4d289b2750317b32f4a5a08d2ef0fb33a789cf3e..4eb7825fd1a74ce26618c38d27d3b780cc21556d 100644 (file)
@@ -9,7 +9,6 @@
  * your option) any later version.
  */
 
-#include <asm/scatterlist.h>
 #include <linux/scatterlist.h>
 
 #include <linux/mmc/host.h>
@@ -18,6 +17,7 @@
 #include <linux/mmc/sdio.h>
 
 #include "core.h"
+#include "sdio_ops.h"
 
 int mmc_send_io_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr)
 {
@@ -76,6 +76,10 @@ int mmc_io_rw_direct(struct mmc_card *card, int write, unsigned fn,
        BUG_ON(!card);
        BUG_ON(fn > 7);
 
+       /* sanity check */
+       if (addr & ~0x1FFFF)
+               return -EINVAL;
+
        memset(&cmd, 0, sizeof(struct mmc_command));
 
        cmd.opcode = SD_IO_RW_DIRECT;
@@ -125,6 +129,10 @@ int mmc_io_rw_extended(struct mmc_card *card, int write, unsigned fn,
        WARN_ON(blocks == 0);
        WARN_ON(blksz == 0);
 
+       /* sanity check */
+       if (addr & ~0x1FFFF)
+               return -EINVAL;
+
        memset(&mrq, 0, sizeof(struct mmc_request));
        memset(&cmd, 0, sizeof(struct mmc_command));
        memset(&data, 0, sizeof(struct mmc_data));