Changeset f9d0a86 in mainline for kernel/generic/src/ipc/irq.c


Ignore:
Timestamp:
2017-11-14T12:24:42Z (7 years ago)
Author:
Aearsis <Hlavaty.Ondrej@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6cad776
Parents:
887c9de (diff), d2d142a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
git-author:
Aearsis <Hlavaty.Ondrej@…> (2017-11-14 01:04:19)
git-committer:
Aearsis <Hlavaty.Ondrej@…> (2017-11-14 12:24:42)
Message:

Merge tag '0.7.1'

The merge wasn't clean, because of changes in build system. The most
significant change was partial revert of usbhc callback refactoring,
which now does not take usb transfer batch, but few named fields again.

File:
1 edited

Legend:

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

    r887c9de rf9d0a86  
    271271}
    272272
     273static 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
    273288static void irq_destroy(void *arg)
    274289{
    275290        irq_t *irq = (irq_t *) arg;
     291
     292        irq_hash_out(irq);
    276293
    277294        /* Free up the IRQ code and associated structures. */
     
    373390        assert(kobj->irq->notif_cfg.answerbox == box);
    374391
    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);
     392        irq_hash_out(kobj->irq);
    387393
    388394        kobject_put(kobj);
Note: See TracChangeset for help on using the changeset viewer.