lkml.org 
[lkml]   [2005]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: Problem found: kaweth fails to work on 2.6.12-rc[456]
    Date
    Am Sonntag, 12. Juni 2005 15:05 schrieb Wakko Warner:
    > Oliver Neukum wrote:
    > > Am Sonntag, 12. Juni 2005 02:41 schrieb Wakko Warner:
    > > > After doing some testing, I believe a patch that went into rc4 broke kaweth.
    > > > The kaweth driver itself did not change from rc2 through rc6.
    > > >
    > > > As a test, I reverted a patch that went into rc4 which modified
    > > > net/core/link_watch.c. Once I compiled the kernel, my netgear EA101 works
    > > > again.
    > > >
    > > > The above is not cut'n'paste. There was 1 other addition (an include) that
    > > > I removed from the patch inorder to revert it. The patch above was applied
    > > > to 2.6.12-rc6 using -Rp1. This is why I believe that kaweth is broken.
    > > > With my limited understanding of the kernel, it would appear that kaweth
    > > > doesn't support netif_carrier_ok properly.
    > > > Anyway, I found what caused it to break, but at this point, I do not have
    > > > the required knowledge to do a proper fix.
    > >
    > > static void int_callback(struct urb *u, struct pt_regs *regs)
    > > is supposed to handle the link state. Maybe it fails in your case. Could you
    > > add a printk to this callback to check linkstate?
    >
    > I don't believe my case is very specific. I've tested this on 4 different
    > systems with totally different configs. If it is at all specific, I believe
    > it would be with the network adapter itself. I don't have any other usb
    > adapters that use kaweth.
    >
    > Can you tell me where I need to add the printks?

    In static void int_callback(struct urb *u, struct pt_regs *regs):

    /* we check the link state to report changes */
    if (kaweth->linkstate != (act_state = ( kaweth->intbuffer[STATE_OFFSET] | STATE_MASK) >> STATE_SHIFT)) {
    <------- HERE please a printk for detecting a link state change
    if (!act_state)
    netif_carrier_on(kaweth->net);
    else
    netif_carrier_off(kaweth->net);

    kaweth->linkstate = act_state;
    }

    <----------- HERE the value of linkstate is important
    resubmit:
    kaweth_resubmit_int_urb(kaweth, GFP_ATOMIC);

    Regards
    Oliver
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-06-12 17:25    [W:0.021 / U:33.516 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site