Here's my modified int_callback:
static void int_callback(struct urb *u, struct pt_regs *regs)
{
struct kaweth_device *kaweth = u->context;
int act_state;
printk(KERN_INFO "kaweth: begin callback\n");
printk(KERN_INFO "kaweth: u->status: %d\n", u->status);
switch (u->status) {
case 0: /* success */
break;
case -ECONNRESET: /* unlink */
case -ENOENT:
case -ESHUTDOWN:
return;
/* -EPIPE: should clear the halt */
default: /* error */
goto resubmit;
}
/* we check the link state to report changes */
if (kaweth->linkstate != (act_state = ( kaweth->intbuffer[STATE_OFFSET]
printk(KERN_INFO "kaweth: Link state change. kaweth->linkstate: %d act_state:
kaweth->linkstate, act_state);
if (!act_state) {
printk(KERN_INFO "kaweth: netif_carrier_on\n");
netif_carrier_on(kaweth->net);
} else {
printk(KERN_INFO "kaweth: netif_carrier_off\n");
netif_carrier_off(kaweth->net);
}
kaweth->linkstate = act_state;
printk(KERN_INFO "kaweth: new link state: %d\n", act_state);
}
resubmit:
kaweth_resubmit_int_urb(kaweth, GFP_ATOMIC);
printk(KERN_INFO "kaweth: end callback\n");
}
Results (after ifconfig up, ethernet cable was plugged in at the time):
Jun 14 20:50:25 gonzales kernel: [80756.691742] kaweth: begin callback
Jun 14 20:50:25 gonzales kernel: [80756.691754] kaweth: u->status: 0
Jun 14 20:50:25 gonzales kernel: [80756.691759] kaweth: Link state change. kaweth->linkstate: 0 act_state: 2
Jun 14 20:50:25 gonzales kernel: [80756.691764] kaweth: netif_carrier_off
Jun 14 20:50:25 gonzales kernel: [80756.691769] kaweth: new link state: 2
Jun 14 20:50:25 gonzales kernel: [80756.691776] kaweth: end callback
the next thing was:
Jun 14 20:50:25 gonzales kernel: [80756.819793] kaweth: begin callback
Jun 14 20:50:25 gonzales kernel: [80756.819800] kaweth: u->status: 0
Jun 14 20:50:25 gonzales kernel: [80756.819807] kaweth: end callback
many times, last occurence:
Jun 14 20:50:36 gonzales kernel: [80767.576134] kaweth: begin callback
Jun 14 20:50:36 gonzales kernel: [80767.576143] kaweth: u->status: 0
Jun 14 20:50:36 gonzales kernel: [80767.576157] kaweth: end callback
then I ifconfig down since it was spewing that information:
Jun 14 20:50:36 gonzales kernel: [80767.618157] kaweth: begin callback
Jun 14 20:50:36 gonzales kernel: [80767.618172] kaweth: u->status: -2
I assume it didn't print the end since the status was -2 (not sure what -2 is)
I'm working off a different ethernet card to stay on line while I debug.
--
Lab tests show that use of micro$oft causes cancer in lab animals
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]