Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'arm-fixes-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull ARM SoC fixes from Arnd Bergmann:
"This is one set of fixes for the NXP/FSL DPAA2 drivers, addressing a
few minor issues. I received these just after sending out the last
v5.15 fixes, and nothing in here seemed urgent enough for a quick
follow-up"

* tag 'arm-fixes-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
soc: fsl: dpaa2-console: free buffer before returning from dpaa2_console_read
soc: fsl: dpio: use the combined functions to protect critical zone
soc: fsl: dpio: replace smp_processor_id with raw_smp_processor_id

+5 -7
+1
drivers/soc/fsl/dpaa2-console.c
··· 231 231 cd->cur_ptr += bytes; 232 232 written += bytes; 233 233 234 + kfree(kbuf); 234 235 return written; 235 236 236 237 err_free_buf:
+1 -1
drivers/soc/fsl/dpio/dpio-service.c
··· 68 68 * potentially being migrated away. 69 69 */ 70 70 if (cpu < 0) 71 - cpu = smp_processor_id(); 71 + cpu = raw_smp_processor_id(); 72 72 73 73 /* If a specific cpu was requested, pick it up immediately */ 74 74 return dpio_by_cpu[cpu];
+3 -6
drivers/soc/fsl/dpio/qbman-portal.c
··· 737 737 int i, num_enqueued = 0; 738 738 unsigned long irq_flags; 739 739 740 - spin_lock(&s->access_spinlock); 741 - local_irq_save(irq_flags); 740 + spin_lock_irqsave(&s->access_spinlock, irq_flags); 742 741 743 742 half_mask = (s->eqcr.pi_ci_mask>>1); 744 743 full_mask = s->eqcr.pi_ci_mask; ··· 748 749 s->eqcr.available = qm_cyc_diff(s->eqcr.pi_ring_size, 749 750 eqcr_ci, s->eqcr.ci); 750 751 if (!s->eqcr.available) { 751 - local_irq_restore(irq_flags); 752 - spin_unlock(&s->access_spinlock); 752 + spin_unlock_irqrestore(&s->access_spinlock, irq_flags); 753 753 return 0; 754 754 } 755 755 } ··· 787 789 dma_wmb(); 788 790 qbman_write_register(s, QBMAN_CINH_SWP_EQCR_PI, 789 791 (QB_RT_BIT)|(s->eqcr.pi)|s->eqcr.pi_vb); 790 - local_irq_restore(irq_flags); 791 - spin_unlock(&s->access_spinlock); 792 + spin_unlock_irqrestore(&s->access_spinlock, irq_flags); 792 793 793 794 return num_enqueued; 794 795 }