Changeset 24abb85d in mainline for kernel/generic/src/ipc/irq.c
- Timestamp:
- 2017-08-18T23:27:08Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4d76cfc
- Parents:
- e9d15d9
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/ipc/irq.c
re9d15d9 r24abb85d 294 294 * @param box Receiving answerbox. 295 295 * @param inr IRQ number. 296 * @param devno Device number.297 296 * @param imethod Interface and method to be associated with the 298 297 * notification. … … 303 302 * 304 303 */ 305 int ipc_irq_subscribe(answerbox_t *box, inr_t inr, devno_t devno,306 sysarg_t imethod,irq_code_t *ucode)304 int ipc_irq_subscribe(answerbox_t *box, inr_t inr, sysarg_t imethod, 305 irq_code_t *ucode) 307 306 { 308 307 sysarg_t key[] = { 309 (sysarg_t) inr,310 (sysarg_t) devno308 [IRQ_HT_KEY_INR] = (sysarg_t) inr, 309 [IRQ_HT_KEY_MODE] = (sysarg_t) IRQ_HT_MODE_NO_CLAIM 311 310 }; 312 311 … … 334 333 irq_t *irq = &kobj->irq; 335 334 irq_initialize(irq); 336 irq->devno = devno;337 335 irq->inr = inr; 338 336 irq->claim = ipc_irq_top_half_claim; … … 349 347 */ 350 348 irq_spinlock_lock(&irq_uspace_hash_table_lock, true); 351 352 link_t *hlp = hash_table_find(&irq_uspace_hash_table, key);353 if (hlp) {354 irq_t *hirq = hash_table_get_instance(hlp, irq_t, link);355 356 /* hirq is locked */357 irq_spinlock_unlock(&hirq->lock, false);358 code_free(code);359 irq_spinlock_unlock(&irq_uspace_hash_table_lock, true);360 361 kobject_free(TASK, cap);362 return EEXIST;363 }364 365 /* Locking is not really necessary, but paranoid */366 349 irq_spinlock_lock(&irq->lock, false); 367 350 irq_spinlock_lock(&box->irq_lock, false);
Note:
See TracChangeset
for help on using the changeset viewer.