Lines 1380-1391
static int arcmsr_iop_message_xfer(struct AdapterControlBlock *acb, \
Link Here
|
1380 |
|
1388 |
|
1381 |
case ARCMSR_MESSAGE_READ_RQBUFFER: { |
1389 |
case ARCMSR_MESSAGE_READ_RQBUFFER: { |
1382 |
unsigned long *ver_addr; |
1390 |
unsigned long *ver_addr; |
1383 |
dma_addr_t buf_handle; |
|
|
1384 |
uint8_t *pQbuffer, *ptmpQbuffer; |
1391 |
uint8_t *pQbuffer, *ptmpQbuffer; |
1385 |
int32_t allxfer_len = 0; |
1392 |
int32_t allxfer_len = 0; |
|
|
1393 |
void *tmp; |
1386 |
|
1394 |
|
1387 |
ver_addr = pci_alloc_consistent(acb->pdev, 1032, &buf_handle); |
1395 |
tmp = kmalloc(1032, GFP_KERNEL|GFP_DMA); |
1388 |
if (!ver_addr) { |
1396 |
ver_addr = (unsigned long *)tmp; |
|
|
1397 |
if (!tmp) { |
1389 |
retvalue = ARCMSR_MESSAGE_FAIL; |
1398 |
retvalue = ARCMSR_MESSAGE_FAIL; |
1390 |
goto message_out; |
1399 |
goto message_out; |
1391 |
} |
1400 |
} |
Lines 1421-1438
static int arcmsr_iop_message_xfer(struct AdapterControlBlock *acb, \
Link Here
|
1421 |
memcpy(pcmdmessagefld->messagedatabuffer, (uint8_t *)ver_addr, allxfer_len); |
1430 |
memcpy(pcmdmessagefld->messagedatabuffer, (uint8_t *)ver_addr, allxfer_len); |
1422 |
pcmdmessagefld->cmdmessage.Length = allxfer_len; |
1431 |
pcmdmessagefld->cmdmessage.Length = allxfer_len; |
1423 |
pcmdmessagefld->cmdmessage.ReturnCode = ARCMSR_MESSAGE_RETURNCODE_OK; |
1432 |
pcmdmessagefld->cmdmessage.ReturnCode = ARCMSR_MESSAGE_RETURNCODE_OK; |
1424 |
pci_free_consistent(acb->pdev, 1032, ver_addr, buf_handle); |
1433 |
kfree(tmp); |
1425 |
} |
1434 |
} |
1426 |
break; |
1435 |
break; |
1427 |
|
1436 |
|
1428 |
case ARCMSR_MESSAGE_WRITE_WQBUFFER: { |
1437 |
case ARCMSR_MESSAGE_WRITE_WQBUFFER: { |
1429 |
unsigned long *ver_addr; |
1438 |
unsigned long *ver_addr; |
1430 |
dma_addr_t buf_handle; |
|
|
1431 |
int32_t my_empty_len, user_len, wqbuf_firstindex, wqbuf_lastindex; |
1439 |
int32_t my_empty_len, user_len, wqbuf_firstindex, wqbuf_lastindex; |
1432 |
uint8_t *pQbuffer, *ptmpuserbuffer; |
1440 |
uint8_t *pQbuffer, *ptmpuserbuffer; |
|
|
1441 |
void *tmp; |
1433 |
|
1442 |
|
1434 |
ver_addr = pci_alloc_consistent(acb->pdev, 1032, &buf_handle); |
1443 |
tmp = kmalloc(1032, GFP_KERNEL|GFP_DMA); |
1435 |
if (!ver_addr) { |
1444 |
ver_addr = (unsigned long *)tmp; |
|
|
1445 |
if (!tmp) { |
1436 |
retvalue = ARCMSR_MESSAGE_FAIL; |
1446 |
retvalue = ARCMSR_MESSAGE_FAIL; |
1437 |
goto message_out; |
1447 |
goto message_out; |
1438 |
} |
1448 |
} |
Lines 1482-1488
static int arcmsr_iop_message_xfer(struct AdapterControlBlock *acb, \
Link Here
|
1482 |
retvalue = ARCMSR_MESSAGE_FAIL; |
1492 |
retvalue = ARCMSR_MESSAGE_FAIL; |
1483 |
} |
1493 |
} |
1484 |
} |
1494 |
} |
1485 |
pci_free_consistent(acb->pdev, 1032, ver_addr, buf_handle); |
1495 |
kfree(tmp); |
1486 |
} |
1496 |
} |
1487 |
break; |
1497 |
break; |
1488 |
|
1498 |
|