Ver Fonte

Merge pull request #3 from uestczyh222/master

fix some bugs for args check
朱天龙 (Armink) há 7 anos atrás
pai
commit
81530f4a3e
1 ficheiros alterados com 22 adições e 5 exclusões
  1. 22 5
      stm32_sdio.c

+ 22 - 5
stm32_sdio.c

@@ -222,15 +222,32 @@ static void rthw_sdio_transfer_by_cpu(struct rthw_sdio *sdio, struct sdio_pkg *p
 
 static void rthw_sdio_transfer_by_dma(struct rthw_sdio *sdio, struct sdio_pkg *pkg)
 {
-    struct rt_mmcsd_data *data = pkg->cmd->data;
-    int size = data->blks * data->blksize;
-    void *buff = pkg->buff;
-    struct stm32_sdio *hw_sdio = sdio->sdio_des.hw_sdio;
+    struct rt_mmcsd_data *data;
+    int size;
+    void *buff;
+    struct stm32_sdio *hw_sdio;
+
+    if ((RT_NULL == pkg) || (RT_NULL == sdio))
+    {
+        LOG_E("rthw_sdio_transfer_by_dma invalid args");
+        return;
+    }
 
-    if ((data == RT_NULL) || (buff == RT_NULL))
+    data = pkg->cmd->data;
+    if(RT_NULL == data)
+    {
+        LOG_E("rthw_sdio_transfer_by_dma invalid args");
+        return;
+    }
+    
+    buff = pkg->buff;
+    if(RT_NULL == buff)
     {
+        LOG_E("rthw_sdio_transfer_by_dma invalid args");
         return;
     }
+    hw_sdio = sdio->sdio_des.hw_sdio;
+    size = data->blks * data->blksize;
 
     if (data->flags & DATA_DIR_WRITE)
     {