Re: another oops, this time in 2.6.9-rc1-mm4

From: Borislav Petkov
Date: Thu Sep 09 2004 - 04:35:57 EST


On Thursday 09 September 2004 08:38, Greg KH wrote:
> On Thu, Sep 09, 2004 at 01:07:05AM -0400, Gene Heskett wrote:
> > Greetings;
> >
> > I just had to reboot back to -mm2 after playing with some printer configs
> > in cups, although the test pages worked, so I'm not sure what this all
> > about, from var log/messages:
> >
> > Sep 8 23:13:42 coyote cups: cupsd -HUP succeeded
> > Sep 8 23:13:43 coyote kernel: usb_unlink_urb() is deprecated for
> > synchronous unlinks. Use usb_kill_urb() Sep 8 23:13:43 coyote kernel:
> > Badness in usb_unlink_urb at drivers/usb/core/urb.c:456 Sep 8 23:13:44
> > coyote kernel: [<c01048ce>] dump_stack+0x1e/0x20 Sep 8 23:13:44 coyote
> > kernel: [<c0295f35>] usb_unlink_urb+0x85/0xa0 Sep 8 23:13:44 coyote
> > kernel: [<c02a7447>] usblp_unlink_urbs+0x17/0x40 Sep 8 23:13:44 coyote
> > kernel: [<c02a74a8>] usblp_release+0x38/0x60 Sep 8 23:13:44 coyote
> > kernel: [<c01501ea>] __fput+0x12a/0x140
> > Sep 8 23:13:44 coyote kernel: [<c014e8e7>] filp_close+0x57/0x80
> > Sep 8 23:13:44 coyote kernel: [<c014e971>] sys_close+0x61/0x90
> > Sep 8 23:13:44 coyote kernel: [<c010425d>] sysenter_past_esp+0x52/0x71
> >
> > repeat about 40-50 times before I rebooted cause it was very sluggish.
>
> It's not a oops, it's a message that the driver needs to be fixed up,
> and can be ignored safely (but sending a patch to fix the driver would
> be even nicer...)
>
> thanks,
>
> greg k-h
> -

Hi there Greg,
please be gentle, this is my first time :)
The situation looked trivial so I thought I should give it a try:

Regards,
Boris.
--- drivers/usb/class/usblp.c.orig 2004-09-09 11:22:56.000000000 +0200
+++ drivers/usb/class/usblp.c 2004-09-09 11:24:11.000000000 +0200
@@ -410,9 +410,9 @@ static void usblp_cleanup (struct usblp

static void usblp_unlink_urbs(struct usblp *usblp)
{
- usb_unlink_urb(usblp->writeurb);
+ usb_kill_urb(usblp->writeurb);
if (usblp->bidir)
- usb_unlink_urb(usblp->readurb);
+ usb_kill_urb(usblp->readurb);
}

static int usblp_release(struct inode *inode, struct file *file)