Rev 2089 | Rev 2117 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2089 | Rev 2107 | ||
|---|---|---|---|
| Line 300... | Line 300... | ||
| 300 | 300 | ||
| 301 | bool rv; |
301 | bool rv; |
| 302 | 302 | ||
| 303 | spinlock_lock(&irq->lock); |
303 | spinlock_lock(&irq->lock); |
| 304 | if (devno == -1) { |
304 | if (devno == -1) { |
| 305 | /* Invoked by irq_dispatch(). */ |
305 | /* Invoked by irq_dispatch_and_lock(). */ |
| 306 | rv = ((irq->inr == inr) && (irq->claim() == IRQ_ACCEPT)); |
306 | rv = ((irq->inr == inr) && (irq->claim() == IRQ_ACCEPT)); |
| 307 | } else { |
307 | } else { |
| 308 | /* Invoked by irq_find(). */ |
308 | /* Invoked by irq_find_and_lock(). */ |
| 309 | rv = ((irq->inr == inr) && (irq->devno == devno)); |
309 | rv = ((irq->inr == inr) && (irq->devno == devno)); |
| 310 | } |
310 | } |
| 311 | 311 | ||
| 312 | /* unlock only on non-match */ |
312 | /* unlock only on non-match */ |
| 313 | if (!rv) |
313 | if (!rv) |
| Line 359... | Line 359... | ||
| 359 | devno_t devno = (devno_t) key[KEY_DEVNO]; |
359 | devno_t devno = (devno_t) key[KEY_DEVNO]; |
| 360 | bool rv; |
360 | bool rv; |
| 361 | 361 | ||
| 362 | spinlock_lock(&irq->lock); |
362 | spinlock_lock(&irq->lock); |
| 363 | if (devno == -1) { |
363 | if (devno == -1) { |
| 364 | /* Invoked by irq_dispatch() */ |
364 | /* Invoked by irq_dispatch_and_lock() */ |
| 365 | rv = (irq->claim() == IRQ_ACCEPT); |
365 | rv = (irq->claim() == IRQ_ACCEPT); |
| 366 | } else { |
366 | } else { |
| 367 | /* Invoked by irq_find() */ |
367 | /* Invoked by irq_find_and_lock() */ |
| 368 | rv = (irq->devno == devno); |
368 | rv = (irq->devno == devno); |
| 369 | } |
369 | } |
| 370 | 370 | ||
| 371 | /* unlock only on non-match */ |
371 | /* unlock only on non-match */ |
| 372 | if (!rv) |
372 | if (!rv) |