Menu

#23 packet_length fails in current cvs

closed-fixed
ohci (10)
5
2002-03-21
2002-01-07
Tim Evers
No

I just installed the CVS from 2001.01.07 10:30 CET
and think I found a bug in ohci1394.c:
in

static __inline__ int packet_length(...)

if (d->ctx < 2) { /* Async Receive Response/Request */
...
} else if (d->ctx == 2) { /* Iso receive */

seems not to recognize iso-packets. At least on my
system all Iso-packets seem to come along with a d->ctx
of 0 not 2.
please tell me what this d->ctx stands for and where
the codes for it are defined.
if i quick hack the if clauses to handle packets with
ctx == 0 as iso-packets it seems to work, but on the
other hand, it DID work with the original kernel-2.2.16
code, where this funtion is identical to todays cvs.

regards, Tim

Discussion

  • Tim Evers

    Tim Evers - 2002-01-07

    Logged In: YES
    user_id=209822

    hogsberg did break things in 1.87.
    the function packet_length() relys on the ctx number to
    determine if packets are iso or async.
    the IF clause in packet_length() should rather be something
    like this:

    if (d->type == DMA_CTX_ASYNC) { //FIXED by te
    /* was ...(d->ctx < 2) { Async Receive Response/Request */
    } else if (d->type == DMA_CTX_ISO) { // FIXED by te
    /* was ...(d->ctx == 2) { Iso */

    regards, Tim

     
  • Ben Collins

    Ben Collins - 2002-03-21

    Logged In: YES
    user_id=196071

    This change is in the current CVS, so is fixed.

     
  • Ben Collins

    Ben Collins - 2002-03-21
    • labels: --> ohci
    • assigned_to: nobody --> bencollins
    • status: open --> closed-fixed
     

Log in to post a comment.

MongoDB Logo MongoDB