git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git]
/
drivers
/
usb
/
mon
/
mon_main.c
diff --git
a/drivers/usb/mon/mon_main.c
b/drivers/usb/mon/mon_main.c
index
275a66f
..
6ecc273
100644
(file)
--- a/
drivers/usb/mon/mon_main.c
+++ b/
drivers/usb/mon/mon_main.c
@@
-97,7
+97,6
@@
static void mon_submit(struct usb_bus *ubus, struct urb *urb)
if (mbus->nreaders == 0)
goto out_locked;
if (mbus->nreaders == 0)
goto out_locked;
- mbus->cnt_events++;
list_for_each (pos, &mbus->r_list) {
r = list_entry(pos, struct mon_reader, r_link);
r->rnf_submit(r->r_data, urb);
list_for_each (pos, &mbus->r_list) {
r = list_entry(pos, struct mon_reader, r_link);
r->rnf_submit(r->r_data, urb);
@@
-114,32
+113,20
@@
out_unlocked:
/*
*/
/*
*/
-static void mon_submit_error(struct usb_bus *ubus, struct urb *urb, int err
or
)
+static void mon_submit_error(struct usb_bus *ubus, struct urb *urb, int err)
{
struct mon_bus *mbus;
{
struct mon_bus *mbus;
- unsigned long flags;
- struct list_head *pos;
- struct mon_reader *r;
mbus = ubus->mon_bus;
if (mbus == NULL)
goto out_unlocked;
mbus = ubus->mon_bus;
if (mbus == NULL)
goto out_unlocked;
- spin_lock_irqsave(&mbus->lock, flags);
- if (mbus->nreaders == 0)
- goto out_locked;
-
- mbus->cnt_events++;
- list_for_each (pos, &mbus->r_list) {
- r = list_entry(pos, struct mon_reader, r_link);
- r->rnf_error(r->r_data, urb, error);
- }
+ /*
+ * XXX Capture the error code and the 'E' event.
+ */
- spin_unlock_irqrestore(&mbus->lock, flags);
return;
return;
-out_locked:
- spin_unlock_irqrestore(&mbus->lock, flags);
out_unlocked:
return;
}
out_unlocked:
return;
}
@@
-165,7
+152,6
@@
static void mon_complete(struct usb_bus *ubus, struct urb *urb)
}
spin_lock_irqsave(&mbus->lock, flags);
}
spin_lock_irqsave(&mbus->lock, flags);
- mbus->cnt_events++;
list_for_each (pos, &mbus->r_list) {
r = list_entry(pos, struct mon_reader, r_link);
r->rnf_complete(r->r_data, urb);
list_for_each (pos, &mbus->r_list) {
r = list_entry(pos, struct mon_reader, r_link);
r->rnf_complete(r->r_data, urb);
@@
-177,6
+163,7
@@
static void mon_complete(struct usb_bus *ubus, struct urb *urb)
/*
* Stop monitoring.
/*
* Stop monitoring.
+ * Obviously this must be well locked, so no need to play with mb's.
*/
static void mon_stop(struct mon_bus *mbus)
{
*/
static void mon_stop(struct mon_bus *mbus)
{