* Re: [linux-usb-devel] duplication of devices, hotplug, pegasus (a lot ;-)
@ 2001-07-12 18:04 Pete Zaitcev
2001-07-13 6:27 ` Norbert Preining
0 siblings, 1 reply; 2+ messages in thread
From: Pete Zaitcev @ 2001-07-12 18:04 UTC (permalink / raw)
To: linux-hotplug
> From: Norbert Preining <preining@logic.at>
> To: linux-usb-devel@lists.sourceforge.net,
> linux-hotplug-devel@lists.sourceforge.net
> Date: Thu, 12 Jul 2001 11:42:00 +0200
> I get a duplication of devices with linux-2.4.6, ohci:
Try this:
diff -ur linux-2.4.5/drivers/usb/usb.c linux-2.4.5-tr5/drivers/usb/usb.c
--- linux-2.4.5/drivers/usb/usb.c Sat Apr 28 11:28:09 2001
+++ linux-2.4.5-tr5/drivers/usb/usb.c Tue May 29 18:22:19 2001
@@ -688,10 +688,12 @@
return -1;
}
+ down(&dev->serialize);
+
interface = dev->actconfig->interface + ifnum;
if (usb_interface_claimed(interface))
- return -1;
+ goto out_err;
private = NULL;
for (tmp = usb_driver_list.next; tmp != &usb_driver_list;) {
@@ -699,7 +701,6 @@
driver = list_entry(tmp, struct usb_driver, driver_list);
tmp = tmp->next;
- down(&driver->serialize);
id = driver->id_table;
/* new style driver? */
if (id) {
@@ -707,7 +708,9 @@
interface->act_altsetting = i;
id = usb_match_id(dev, interface, id);
if (id) {
+ down(&driver->serialize);
private = driver->probe(dev,ifnum,id);
+ up(&driver->serialize);
if (private != NULL)
break;
}
@@ -717,15 +720,21 @@
interface->act_altsetting = 0;
}
else /* "old style" driver */
+ {
+ down(&driver->serialize);
private = driver->probe(dev, ifnum, NULL);
+ up(&driver->serialize);
+ }
- up(&driver->serialize);
if (private) {
usb_driver_claim_interface(driver, interface, private);
+ up(&dev->serialize);
return 0;
}
}
+out_err:
+ up(&dev->serialize);
return -1;
}
@@ -924,6 +933,8 @@
atomic_set(&dev->refcnt, 1);
INIT_LIST_HEAD(&dev->inodes);
INIT_LIST_HEAD(&dev->filelist);
+
+ init_MUTEX(&dev->serialize);
dev->bus->op->allocate(dev);
diff -ur linux-2.4.5/include/linux/usb.h linux-2.4.5-tr5/include/linux/usb.h
--- linux-2.4.5/include/linux/usb.h Fri May 25 18:02:43 2001
+++ linux-2.4.5-tr5/include/linux/usb.h Tue May 29 18:12:33 2001
@@ -595,6 +595,7 @@
int slow; /* Slow device? */
atomic_t refcnt; /* Reference count */
+ struct semaphore serialize;
unsigned int toggle[2]; /* one bit for each endpoint ([0] = IN, [1] = OUT) */
unsigned int halted[2]; /* endpoint halts; one bit per endpoint # & direction; */
> Another problem: The pegasus stops working while downloading big files
> and the kernel oopses [...]
Sorry, not my piece of code. Try to identify the pegasus
maintainer...
-- Pete
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [linux-usb-devel] duplication of devices, hotplug, pegasus (a lot ;-)
2001-07-12 18:04 [linux-usb-devel] duplication of devices, hotplug, pegasus (a lot ;-) Pete Zaitcev
@ 2001-07-13 6:27 ` Norbert Preining
0 siblings, 0 replies; 2+ messages in thread
From: Norbert Preining @ 2001-07-13 6:27 UTC (permalink / raw)
To: linux-hotplug
On Don, 12 Jul 2001, Pete Zaitcev wrote:
> > I get a duplication of devices with linux-2.4.6, ohci:
>
> Try this:
Working, thanks a lot.
> > Another problem: The pegasus stops working while downloading big files
> > and the kernel oopses [...]
>
> Sorry, not my piece of code. Try to identify the pegasus
> maintainer...
I think it was a problem of the duplicated eth devices within the
pegasus driver. Now (and yesterday when loading by hand) it was
working well.
Thanks a lot
Best wishes
Norbert
--
ciao
norb
+-------------------------------------------------------------------+
| Norbert Preining http://www.logic.at/people/preining |
| University of Technology Vienna, Austria preining@logic.at |
| DSA: 0x09C5B094 (RSA: 0xCF1FA165) mail subject: get [DSA|RSA]-key |
+-------------------------------------------------------------------+
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2001-07-13 6:27 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-07-12 18:04 [linux-usb-devel] duplication of devices, hotplug, pegasus (a lot ;-) Pete Zaitcev
2001-07-13 6:27 ` Norbert Preining
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).