From: Florian Fainelli <f.faine...@gmail.com> Date: Wed, 24 Aug 2016 11:01:20 -0700
> We kept shadow copies of which interrupt sources we have enabled and > disabled, but due to an order bug in how intrl2_mask_clear was defined, > we could run into the following scenario: > > CPU0 CPU1 > intrl2_1_mask_clear(..) > sets INTRL2_CPU_MASK_CLEAR > bcm_sf2_switch_1_isr > read INTRL2_CPU_STATUS and masks with > stale > irq1_mask value > updates irq1_mask value > > Which would make us loop again and again trying to process and interrupt > we are not clearing since our copy of whether it was enabled before > still indicates it was not. Fix this by updating the shadow copy first, > and then unasking at the HW level. > > Fixes: 246d7f773c13 ("net: dsa: add Broadcom SF2 switch driver") > Signed-off-by: Florian Fainelli <f.faine...@gmail.com> Applied and queued up for -stable, thanks.