Re: usbmon problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 10 Mar 2010, Oliver Neukum wrote:

> 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?

I asked for &ses.sense_sgl, not ses.sense_sgl.  That must have messed
up the printk, since it would pass the entire structure as an argument
instead of just passing its address.

Alan Stern

--
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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux