Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/ipc/irq.c

    rc1f68b0 r82cbf8c6  
    271271}
    272272
    273 static void irq_hash_out(irq_t *irq)
    274 {
    275         irq_spinlock_lock(&irq_uspace_hash_table_lock, true);
    276         irq_spinlock_lock(&irq->lock, false);
    277        
    278         if (irq->notif_cfg.hashed_in) {
    279                 /* Remove the IRQ from the uspace IRQ hash table. */
    280                 hash_table_remove_item(&irq_uspace_hash_table, &irq->link);
    281                 irq->notif_cfg.hashed_in = false;
    282         }
    283 
    284         irq_spinlock_unlock(&irq->lock, false);
    285         irq_spinlock_unlock(&irq_uspace_hash_table_lock, true);
    286 }
    287 
    288273static void irq_destroy(void *arg)
    289274{
    290275        irq_t *irq = (irq_t *) arg;
    291 
    292         irq_hash_out(irq);
    293276
    294277        /* Free up the IRQ code and associated structures. */
     
    390373        assert(kobj->irq->notif_cfg.answerbox == box);
    391374
    392         irq_hash_out(kobj->irq);
     375        irq_spinlock_lock(&irq_uspace_hash_table_lock, true);
     376        irq_spinlock_lock(&kobj->irq->lock, false);
     377       
     378        if (kobj->irq->notif_cfg.hashed_in) {
     379                /* Remove the IRQ from the uspace IRQ hash table. */
     380                hash_table_remove_item(&irq_uspace_hash_table,
     381                    &kobj->irq->link);
     382                kobj->irq->notif_cfg.hashed_in = false;
     383        }
     384
     385        irq_spinlock_unlock(&kobj->irq->lock, false);
     386        irq_spinlock_unlock(&irq_uspace_hash_table_lock, true);
    393387
    394388        kobject_put(kobj);
Note: See TracChangeset for help on using the changeset viewer.