Hi, > However, I'm running into a bug when I try to write to it. > I'm still trying to decipher it all, but if you have any ideas, > they are welcome. > > Thanks! > Mike > [...] > while (td != NULL && ED_TAILP(ed) != td->td_dma) { > u32 td_flags = get_hwinfo(td); > DPRINTK("MWMDEBUG: td_flags = %ul\n", td_flags); > if (TD_CC_GET(td_flags) == TD_NOTACCESSED) { > *edp = ed; > break; > } else if (TD_CC_GET(td_flags) == TD_BUSY) { > continue; > } > WARN_ON(TD_CC_GET(td_flags) != TD_BUSY); > td = dma_to_td(ohci, td->hwNextTD); > } > > Here's some values of these variables: > > (gdb) p td_flags > $11 = 3238993984 > (gdb) p **edp > $12 = {hwINFO = 3222846020, hwTailP = 3222834908, hwHeadP = > 3222846028, > hwNextED = 3222835216, dma = 3222851892, dummy = 0xc018d134, > ed_next = 0xc01af4cc, ed_prev = 0xc01af4cc, td_list = {next = > 0xc0188ec4, > prev = 0xc017d248}, state = 105 'i', type = 115 's', branch = > 112 'p', > interval = 13875, load = 11570, last_iso = 26735, tick = 26979} > What's the value of td->hwNextTD? Since you are oviously using virtual addresses in hwNextED (according to your hexlified dbg output), I suspect that hwNextTD also is a virtual address in which case dma_to_td() cannot return any reasonable result.
Lothar Wassmann ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel