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) |