• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/usb/mon/

Lines Matching defs:mbus

18 static void mon_stop(struct mon_bus *mbus);
19 static void mon_dissolve(struct mon_bus *mbus, struct usb_bus *ubus);
31 * This must be called with mon_lock taken because of mbus->ref.
33 void mon_reader_add(struct mon_bus *mbus, struct mon_reader *r)
38 spin_lock_irqsave(&mbus->lock, flags);
39 if (mbus->nreaders == 0) {
40 if (mbus == &mon_bus0) {
47 mbus->u_bus->monitored = 1;
50 mbus->nreaders++;
51 list_add_tail(&r->r_link, &mbus->r_list);
52 spin_unlock_irqrestore(&mbus->lock, flags);
54 kref_get(&mbus->ref);
60 * This is called with mon_lock taken, so we can decrement mbus->ref.
62 void mon_reader_del(struct mon_bus *mbus, struct mon_reader *r)
66 spin_lock_irqsave(&mbus->lock, flags);
68 --mbus->nreaders;
69 if (mbus->nreaders == 0)
70 mon_stop(mbus);
71 spin_unlock_irqrestore(&mbus->lock, flags);
73 kref_put(&mbus->ref, mon_bus_drop);
78 static void mon_bus_submit(struct mon_bus *mbus, struct urb *urb)
84 spin_lock_irqsave(&mbus->lock, flags);
85 mbus->cnt_events++;
86 list_for_each (pos, &mbus->r_list) {
90 spin_unlock_irqrestore(&mbus->lock, flags);
96 struct mon_bus *mbus;
98 if ((mbus = ubus->mon_bus) != NULL)
99 mon_bus_submit(mbus, urb);
105 static void mon_bus_submit_error(struct mon_bus *mbus, struct urb *urb, int error)
111 spin_lock_irqsave(&mbus->lock, flags);
112 mbus->cnt_events++;
113 list_for_each (pos, &mbus->r_list) {
117 spin_unlock_irqrestore(&mbus->lock, flags);
123 struct mon_bus *mbus;
125 if ((mbus = ubus->mon_bus) != NULL)
126 mon_bus_submit_error(mbus, urb, error);
132 static void mon_bus_complete(struct mon_bus *mbus, struct urb *urb)
138 spin_lock_irqsave(&mbus->lock, flags);
139 mbus->cnt_events++;
140 list_for_each (pos, &mbus->r_list) {
144 spin_unlock_irqrestore(&mbus->lock, flags);
149 struct mon_bus *mbus;
151 mbus = ubus->mon_bus;
152 if (mbus == NULL) {
162 mon_bus_complete(mbus, urb);
171 static void mon_stop(struct mon_bus *mbus)
173 struct usb_bus *ubus = mbus->u_bus;
176 if (mbus == &mon_bus0) {
178 mbus = list_entry(p, struct mon_bus, bus_link);
182 if (mbus->nreaders == 0 && (ubus = mbus->u_bus) != NULL)
190 if (mon_bus0.nreaders == 0 && (ubus = mbus->u_bus) != NULL) {
217 struct mon_bus *mbus = ubus->mon_bus;
220 list_del(&mbus->bus_link);
221 if (mbus->text_inited)
222 mon_text_del(mbus);
224 mon_dissolve(mbus, ubus);
225 kref_put(&mbus->ref, mon_bus_drop);
258 static void mon_dissolve(struct mon_bus *mbus, struct usb_bus *ubus)
267 mbus->u_bus = NULL;
277 struct mon_bus *mbus = container_of(r, struct mon_bus, ref);
278 kfree(mbus);
289 struct mon_bus *mbus;
291 if ((mbus = kzalloc(sizeof(struct mon_bus), GFP_KERNEL)) == NULL)
293 kref_init(&mbus->ref);
294 spin_lock_init(&mbus->lock);
295 INIT_LIST_HEAD(&mbus->r_list);
301 mbus->u_bus = ubus;
302 ubus->mon_bus = mbus;
304 mbus->text_inited = mon_text_add(mbus, ubus->busnum);
308 list_add_tail(&mbus->bus_link, &mon_buses);
318 struct mon_bus *mbus = &mon_bus0;
320 kref_init(&mbus->ref);
321 spin_lock_init(&mbus->lock);
322 INIT_LIST_HEAD(&mbus->r_list);
324 mbus->text_inited = mon_text_add(mbus, 0);
325 // mbus->bin_inited = mon_bin_add(mbus, 0);
339 struct mon_bus *mbus;
345 mbus = list_entry(p, struct mon_bus, bus_link);
346 if (mbus->u_bus->busnum == num) {
347 return mbus;
391 struct mon_bus *mbus;
401 mbus = list_entry(p, struct mon_bus, bus_link);
404 if (mbus->text_inited)
405 mon_text_del(mbus);
412 if (mbus->nreaders) {
415 mbus->nreaders, mbus->u_bus->busnum);
416 atomic_set(&mbus->ref.refcount, 2); /* Force leak */
419 mon_dissolve(mbus, mbus->u_bus);
420 kref_put(&mbus->ref, mon_bus_drop);
423 mbus = &mon_bus0;
424 if (mbus->text_inited)
425 mon_text_del(mbus);