Re: SLUB Corruption from witin drivers/usb/core/devio.c

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

 



On Sun, 13 May 2012, Oncaphillis wrote:

> > proc_do_submiturb() does several allocations.  Can you figure out which
> > one this is?
> 
> This also seems to be the transfer_buffer. At least it's the kmalloc
> following directly after the bug report of the slug although I don't get
> the same address. I assume that slug allocts a new address if it detects 

It's "slub", not "slug".

> an error. I also see kfrees of 0x00000 adresses when freeing
> ios_pkt and setup_packet but I assume that its o.k. for kfree.

Yes.

> The error seems to hit less often if I insert more and more printk.
> seems like its a matter of timing. Could it be the transfer_buffer is
> used as a start_point for DMA, the driver starts up the DMA and assumes
> to early that it failed ? That coul fit to the loss of 2 byte sequences
> we see. The corrupting byes always seem to be 9d 8d.

transfer_buffer _is_ used for DMA.  However the DMA access should
always be finished before the buffer is deallocated.

The DMA starts when proc_do_submiturb() calls usb_submit_urb(), and the
DMA will end before async_completed() is called.  You can add printk
statements to those routines to trace the flow of control.

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