diff options
Diffstat (limited to 'drivers/staging/rts_pstor/ms.c')
-rw-r--r-- | drivers/staging/rts_pstor/ms.c | 53 |
1 files changed, 24 insertions, 29 deletions
diff --git a/drivers/staging/rts_pstor/ms.c b/drivers/staging/rts_pstor/ms.c index 810e170894f5..2e8258754c96 100644 --- a/drivers/staging/rts_pstor/ms.c +++ b/drivers/staging/rts_pstor/ms.c @@ -23,6 +23,7 @@ #include <linux/blkdev.h> #include <linux/kthread.h> #include <linux/sched.h> +#include <linux/vmalloc.h> #include "rtsx.h" #include "rtsx_transport.h" @@ -863,7 +864,7 @@ static int ms_read_attribute_info(struct rtsx_chip *chip) TRACE_RET(chip, STATUS_FAIL); } - buf = (u8 *)rtsx_alloc_dma_buf(chip, 64 * 512, GFP_KERNEL); + buf = kmalloc(64 * 512, GFP_KERNEL); if (buf == NULL) { TRACE_RET(chip, STATUS_ERROR); } @@ -875,11 +876,11 @@ static int ms_read_attribute_info(struct rtsx_chip *chip) } retval = rtsx_read_register(chip, MS_TRANS_CFG, &val); if (retval != STATUS_SUCCESS) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } if (!(val & MS_INT_BREQ)) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } retval = ms_transfer_data(chip, MS_TM_AUTO_READ, PRO_READ_LONG_DATA, @@ -891,7 +892,7 @@ static int ms_read_attribute_info(struct rtsx_chip *chip) } } if (retval != STATUS_SUCCESS) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } @@ -899,7 +900,7 @@ static int ms_read_attribute_info(struct rtsx_chip *chip) do { retval = rtsx_read_register(chip, MS_TRANS_CFG, &val); if (retval != STATUS_SUCCESS) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } @@ -908,7 +909,7 @@ static int ms_read_attribute_info(struct rtsx_chip *chip) retval = ms_transfer_tpc(chip, MS_TM_NORMAL_READ, PRO_READ_LONG_DATA, 0, WAIT_INT); if (retval != STATUS_SUCCESS) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } @@ -916,18 +917,18 @@ static int ms_read_attribute_info(struct rtsx_chip *chip) } while (i < 1024); if (retval != STATUS_SUCCESS) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } if ((buf[0] != 0xa5) && (buf[1] != 0xc3)) { /* Signature code is wrong */ - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } if ((buf[4] < 1) || (buf[4] > 12)) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } @@ -949,15 +950,15 @@ static int ms_read_attribute_info(struct rtsx_chip *chip) RTSX_DEBUGP("sys_info_addr = 0x%x, sys_info_size = 0x%x\n", sys_info_addr, sys_info_size); if (sys_info_size != 96) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } if (sys_info_addr < 0x1A0) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } if ((sys_info_size + sys_info_addr) > 0x8000) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } @@ -983,15 +984,15 @@ static int ms_read_attribute_info(struct rtsx_chip *chip) RTSX_DEBUGP("model_name_addr = 0x%x, model_name_size = 0x%x\n", model_name_addr, model_name_size); if (model_name_size != 48) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } if (model_name_addr < 0x1A0) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } if ((model_name_size + model_name_addr) > 0x8000) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } @@ -1004,7 +1005,7 @@ static int ms_read_attribute_info(struct rtsx_chip *chip) } if (i == buf[4]) { - rtsx_free_dma_buf(chip, buf); + kfree(buf); TRACE_RET(chip, STATUS_FAIL); } @@ -1041,7 +1042,7 @@ static int ms_read_attribute_info(struct rtsx_chip *chip) memcpy(ms_card->raw_model_name, buf + model_name_addr, 48); #endif - rtsx_free_dma_buf(chip, buf); + kfree(buf); #ifdef SUPPORT_MSXC if (CHK_MSXC(ms_card)) { @@ -3783,7 +3784,7 @@ int mg_get_local_EKB(struct scsi_cmnd *srb, struct rtsx_chip *chip) TRACE_RET(chip, STATUS_FAIL); } - buf = (u8 *)rtsx_alloc_dma_buf(chip, 1540, GFP_KERNEL); + buf = kmalloc(1540, GFP_KERNEL); if (!buf) { TRACE_RET(chip, STATUS_ERROR); } @@ -3816,9 +3817,7 @@ int mg_get_local_EKB(struct scsi_cmnd *srb, struct rtsx_chip *chip) rtsx_stor_set_xfer_buf(buf, bufflen, srb); GetEKBFinish: - if (buf) { - rtsx_free_dma_buf(chip, buf); - } + kfree(buf); return retval; } @@ -4021,7 +4020,7 @@ int mg_get_ICV(struct scsi_cmnd *srb, struct rtsx_chip *chip) TRACE_RET(chip, STATUS_FAIL); } - buf = (u8 *)rtsx_alloc_dma_buf(chip, 1028, GFP_KERNEL); + buf = kmalloc(1028, GFP_KERNEL); if (!buf) { TRACE_RET(chip, STATUS_ERROR); } @@ -4054,9 +4053,7 @@ int mg_get_ICV(struct scsi_cmnd *srb, struct rtsx_chip *chip) rtsx_stor_set_xfer_buf(buf, bufflen, srb); GetICVFinish: - if (buf) { - rtsx_free_dma_buf(chip, buf); - } + kfree(buf); return retval; } @@ -4080,7 +4077,7 @@ int mg_set_ICV(struct scsi_cmnd *srb, struct rtsx_chip *chip) TRACE_RET(chip, STATUS_FAIL); } - buf = (u8 *)rtsx_alloc_dma_buf(chip, 1028, GFP_KERNEL); + buf = kmalloc(1028, GFP_KERNEL); if (!buf) { TRACE_RET(chip, STATUS_ERROR); } @@ -4155,9 +4152,7 @@ int mg_set_ICV(struct scsi_cmnd *srb, struct rtsx_chip *chip) #endif SetICVFinish: - if (buf) { - rtsx_free_dma_buf(chip, buf); - } + kfree(buf); return retval; } |