Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 208493
Collapse All | Expand All

(-)a/drivers/scsi/arcmsr/arcmsr_hba.c (-8 / +10 lines)
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

Return to bug 208493