|
|
@@ -1956,6 +1956,7 @@ static void altr_edac_a10_irq_handler(struct irq_desc *desc)
|
|
|
struct altr_arria10_edac *edac = irq_desc_get_handler_data(desc);
|
|
|
struct irq_chip *chip = irq_desc_get_chip(desc);
|
|
|
int irq = irq_desc_get_irq(desc);
|
|
|
+ unsigned long bits;
|
|
|
|
|
|
dberr = (irq == edac->db_irq) ? 1 : 0;
|
|
|
sm_offset = dberr ? A10_SYSMGR_ECC_INTSTAT_DERR_OFST :
|
|
|
@@ -1965,7 +1966,8 @@ static void altr_edac_a10_irq_handler(struct irq_desc *desc)
|
|
|
|
|
|
regmap_read(edac->ecc_mgr_map, sm_offset, &irq_status);
|
|
|
|
|
|
- for_each_set_bit(bit, (unsigned long *)&irq_status, 32) {
|
|
|
+ bits = irq_status;
|
|
|
+ for_each_set_bit(bit, &bits, 32) {
|
|
|
irq = irq_linear_revmap(edac->domain, dberr * 32 + bit);
|
|
|
if (irq)
|
|
|
generic_handle_irq(irq);
|