> /* FIXME:
> *
> - * 1. Although all of the necessary command mapping places have the
> - * appropriate dma_map.. APIs, the driver still processes its internal
> - * queue using bus_to_virt() and virt_to_bus() which are illegal under
> - * the API. The entire queue processing structure will need to be
> - * altered to fix this.
> + * 1. (done)
> * 2. Need to add memory mapping workaround. Test the memory mapping.
> * If it doesn't work revert to I/O port access. Can a test be done
> * safely?
> * 3. Handle an interrupt not working. Keep an interrupt counter in
> * the interrupt handler. In the timeout function if the interrupt
> * has not occurred then print a message and run in polled mode.
> - * 4. Need to add support for target mode commands, cf. CAM XPT.
> - * 5. check DMA mapping functions for failure
> + * 4. (obsolete)
> + * 5. (done)
> * 6. Use scsi_transport_spi
> * 7. advansys_info is not safe against multiple simultaneous callers
> * 8. Add module_param to override ISA/VLB ioport array
Just drop the done/obsolete items and renumber the rest :)
> + if (dma_mapping_error(board->dev, scp->SCp.dma_handle)) {
> + ASC_DBG(1, "failed to map sense buffer\n");
> + return 0;
> + }
> dma_cache_sync(board->dev, scp->sense_buffer,
> SCSI_SENSE_BUFFERSIZE, DMA_FROM_DEVICE);
> return cpu_to_le32(scp->SCp.dma_handle);
> @@ -7794,6 +7794,8 @@ static int asc_build_req(struct asc_board *boardp,
> struct scsi_cmnd *scp,
> ASC_TIDLUN_TO_IX(scp->device->id, scp->device->lun);
> asc_scsi_q->q1.sense_addr = advansys_get_sense_buffer_dma(scp);
> asc_scsi_q->q1.sense_len = SCSI_SENSE_BUFFERSIZE;
> + if (!asc_scsi_q->q1.sense_addr)
> + return ASC_ERROR;
Please split the addition of error handling into a separate patch,
or in case of newly added mappigns add them to the patch that add the
mappings.
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html