Commit 3aae9d1f authored by Jeffrey Lee's avatar Jeffrey Lee
Browse files

Fix OS_ClaimDeviceVector getting the 'shared IRQ' flag the wrong way round

Detail:
  c/irqdespatch - Fix our OS_ClaimDeviceVector implementation getting the 'shared IRQ' flag the wrong way round, causing interrupts to be incorrectly handled
Admin:
  Tested on wandboard


Version 0.04. Tagged as 'SMP-0_04'
parent 99066177
/* (0.03) /* (0.04)
* *
* This file is automatically maintained by srccommit, do not edit manually. * This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1. * Last processed by srccommit version: 1.1.
* *
*/ */
#define Module_MajorVersion_CMHG 0.03 #define Module_MajorVersion_CMHG 0.04
#define Module_MinorVersion_CMHG #define Module_MinorVersion_CMHG
#define Module_Date_CMHG 10 Sep 2017 #define Module_Date_CMHG 16 Feb 2018
#define Module_MajorVersion "0.03" #define Module_MajorVersion "0.04"
#define Module_Version 3 #define Module_Version 4
#define Module_MinorVersion "" #define Module_MinorVersion ""
#define Module_Date "10 Sep 2017" #define Module_Date "16 Feb 2018"
#define Module_ApplicationDate "10-Sep-17" #define Module_ApplicationDate "16-Feb-18"
#define Module_ComponentName "SMP" #define Module_ComponentName "SMP"
#define Module_ComponentPath "mixed/RiscOS/Sources/Programmer/SMP" #define Module_ComponentPath "mixed/RiscOS/Sources/Programmer/SMP"
#define Module_FullVersion "0.03" #define Module_FullVersion "0.04"
#define Module_HelpVersion "0.03 (10 Sep 2017)" #define Module_HelpVersion "0.04 (16 Feb 2018)"
#define Module_LibraryVersionInfo "0:3" #define Module_LibraryVersionInfo "0:4"
...@@ -128,7 +128,7 @@ bool irq_claim(irqdespatch_t *despatch, int irq, uint32_t r12, irq_handler handl ...@@ -128,7 +128,7 @@ bool irq_claim(irqdespatch_t *despatch, int irq, uint32_t r12, irq_handler handl
irqhead_t *head = &despatch->nodes[irq]; irqhead_t *head = &despatch->nodes[irq];
spinrw_write_lock(&head->lock); spinrw_write_lock(&head->lock);
*node = head->node; *node = head->node;
head->node = (irqnode_t) { .link.flags = ((uint32_t) node) + (shared >> 31), .r12 = r12, .handler = handler }; head->node = (irqnode_t) { .link.flags = ((uint32_t) node) + (shared ? 0 : LINK_UNSHARED), .r12 = r12, .handler = handler };
spinrw_write_unlock(&head->lock); spinrw_write_unlock(&head->lock);
return true; return true;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment