Am Montag, 8. März 2010 19:50:23 schrieb Alan Stern: > > > sg and src need to be compared with the original values when the > > > scatterlist was created. In invoke_transport() print out the values of > > > scsi_sglist(srb), srb->sense_buffer, &ses->sense_sgl, and > > > sg_virt(&ses->sense_sgl). Do this after the call to > > > scsi_eh_prep_cmnd(). > > Mar 8 19:06:10 vanamonde kernel: usb-storage: Issuing auto-REQUEST_SENSE > > Mar 8 19:06:10 vanamonde kernel: usb_stor_invoke_transport - sglist ffff880135b37dc8 sense buffer ffff8801363db940 sense sgl ffff8801363db940 sg_virt ffffea00043dd7ea page link 0000000087654321 dmaaddr ffffea0 0043dd7ea > > Mar 8 19:06:10 vanamonde kernel: usb-storage: Bulk Command S 0x43425355 T 0x118 L 18 F 128 Trg 0 LUN 0 CL 6 > > Mar 8 19:06:10 vanamonde kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes > > Mar 8 19:06:10 vanamonde kernel: mon_text_get_data: num_sgs == 0: src ffff880037807000 > > There are several problems here. Are you sure your printk line really > matches the right value with each label? Retry_Sense: US_DEBUGP("Issuing auto-REQUEST_SENSE\n"); scsi_eh_prep_cmnd(srb, &ses, NULL, 0, sense_size); printk(KERN_ERR"%s - sglist %p sense buffer %p sense sgl %p sg_virt %p page link %p dmaaddr %p\n", __func__, scsi_sglist(srb), srb->sense_buffer, ses.sense_sgl, ((void *)sg_virt(&ses.sense_sgl)), (void *)ses.sense_sgl.page_link, (void *)ses.sense_sgl.dma_address); As far as I can tell, it is correct? Disassembly needed? Regards Oliver -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html