|
Lines 1380-1391
static int arcmsr_iop_message_xfer(struct AdapterControlBlock *acb, \
|
Link Here
|
|---|
|
| |
case ARCMSR_MESSAGE_READ_RQBUFFER: { | case ARCMSR_MESSAGE_READ_RQBUFFER: { |
unsigned long *ver_addr; | unsigned long *ver_addr; |
dma_addr_t buf_handle; |
|
uint8_t *pQbuffer, *ptmpQbuffer; | uint8_t *pQbuffer, *ptmpQbuffer; |
int32_t allxfer_len = 0; | int32_t allxfer_len = 0; |
|
void *tmp; |
| |
ver_addr = pci_alloc_consistent(acb->pdev, 1032, &buf_handle); |
tmp = kmalloc(1032, GFP_KERNEL|GFP_DMA); |
if (!ver_addr) { |
ver_addr = (unsigned long *)tmp; |
|
if (!tmp) { |
retvalue = ARCMSR_MESSAGE_FAIL; | retvalue = ARCMSR_MESSAGE_FAIL; |
goto message_out; | goto message_out; |
} | } |
|
Lines 1421-1438
static int arcmsr_iop_message_xfer(struct AdapterControlBlock *acb, \
|
Link Here
|
|---|
|
memcpy(pcmdmessagefld->messagedatabuffer, (uint8_t *)ver_addr, allxfer_len); | memcpy(pcmdmessagefld->messagedatabuffer, (uint8_t *)ver_addr, allxfer_len); |
pcmdmessagefld->cmdmessage.Length = allxfer_len; | pcmdmessagefld->cmdmessage.Length = allxfer_len; |
pcmdmessagefld->cmdmessage.ReturnCode = ARCMSR_MESSAGE_RETURNCODE_OK; | pcmdmessagefld->cmdmessage.ReturnCode = ARCMSR_MESSAGE_RETURNCODE_OK; |
pci_free_consistent(acb->pdev, 1032, ver_addr, buf_handle); |
kfree(tmp); |
} | } |
break; | break; |
| |
case ARCMSR_MESSAGE_WRITE_WQBUFFER: { | case ARCMSR_MESSAGE_WRITE_WQBUFFER: { |
unsigned long *ver_addr; | unsigned long *ver_addr; |
dma_addr_t buf_handle; |
|
int32_t my_empty_len, user_len, wqbuf_firstindex, wqbuf_lastindex; | int32_t my_empty_len, user_len, wqbuf_firstindex, wqbuf_lastindex; |
uint8_t *pQbuffer, *ptmpuserbuffer; | uint8_t *pQbuffer, *ptmpuserbuffer; |
|
void *tmp; |
| |
ver_addr = pci_alloc_consistent(acb->pdev, 1032, &buf_handle); |
tmp = kmalloc(1032, GFP_KERNEL|GFP_DMA); |
if (!ver_addr) { |
ver_addr = (unsigned long *)tmp; |
|
if (!tmp) { |
retvalue = ARCMSR_MESSAGE_FAIL; | retvalue = ARCMSR_MESSAGE_FAIL; |
goto message_out; | goto message_out; |
} | } |
|
Lines 1482-1488
static int arcmsr_iop_message_xfer(struct AdapterControlBlock *acb, \
|
Link Here
|
|---|
|
retvalue = ARCMSR_MESSAGE_FAIL; | retvalue = ARCMSR_MESSAGE_FAIL; |
} | } |
} | } |
pci_free_consistent(acb->pdev, 1032, ver_addr, buf_handle); |
kfree(tmp); |
} | } |
break; | break; |
| |