On 10-11-19 01:41 AM, 王神 wrote: > On Fri, Nov 19, 2010 at 6:22 AM, James Bottomley > <James.Bottomley@xxxxxxx> wrote: >> On Fri, 2010-11-19 at 01:54 +0800, 王神 wrote: >>> On Thu, Nov 18, 2010 at 11:21 PM, James Bottomley >>> <James.Bottomley@xxxxxxx> wrote: >>>> On Thu, 2010-11-18 at 14:20 +0530, 王神 wrote: >>>>> Hi >>>>> >>>>> I have enabled DMA for my host device and when i connect a scsi device >>>>> to the host, it crashes in the following code.. >>>>> >>>>> Function: scsi_calculate_bounce_limit >>>>> >>>>> if (host_dev&& host_dev->dma_mask) >>>>> bounce_limit = *host_dev->dma_mask; >>>>> >>>>> "*dma_mask" is illegal pointer operation. I would like to understand >>>>> is this known and is there reason behind such a code ? >>>> >>>> It likely means you're operating on a new architecture and its generic >>>> devices haven't been set up correctly. >>> >>> Could you please more specific on what is generic devices haven't been >>> setup properly... >> >> It means the architecture setup code left a NULL pointer in the generic >> device which shouldn't be there ... without knowing which architecture >> and seeing the code, it's pretty impossible to be more specific. > > It is for ARM and the error is not due to NULL pointer. The code just > checks if it is host mode + dma enabled and it access a normal > interger variable with indirection causing the crash; > > int dma_mask; > > and accessing dma_mask as "*dma_mask" ?? > > Anything I am missing :O Yes, supplying more information. I'm familiar with AT91SAM9G20 which is an ARM based microcontroller. The directory of interest in the kernel source is arch/arm/mach-at91 and for the G20 the at91sam9260_devices.c file defines its DMA masks for its devices. In all cases that I can see the dma_mask is the address of a u64 holding DMA_BIT_MASK(32) . There are no real SCSI devices on the G20 but USB might be regarded as SCSI "once removed". And the USB devices on the G20 have dma_mask values as described above. Doug Gilbert -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html