NXP/FSL SoC driver fixes for v5.15
DPAA2 DPIO driver - replace smp_processor_id with raw_smp_processor_id to fix preempt debug BUG - use the combined functions to protect critical zone to fix deadlock DPAA2 console - free buffer before returning from dpaa2_console_read -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEhb3UXAyxp6UQ0v6khtxQDvusFVQFAmF4k9IACgkQhtxQDvus FVSYkhAA0CfNfbgcil/ItQHm8eJPkegycpp3Qiw9WPwHoCc5KVEmfVtmQUxMlwZc UpbcTQwYA0gut9ANPMJETb0TSlRV2dbbPQLMSpByYvz4G8Ozoaek/sDz/mxFkGib KDTOJiqCIVzsDtkT7vQrRLs7RnNwjXY5LYTHylG+vgYQPppkPVXSrGZiFaj6LE6T M6UNwmCpmQkR2jsPHlMRdtabSuFCS1I+wWLbPJfOoD3XS9MM0V45MPO/C7ZHOs2h wsZ/UPfqXMXWY0H5o2GRcaq1vJV3vvj7z3z1SkVociBgkdqz9niMjJuIad66PhoM ZpW/d2F7lukLclIbNRfvGN2aXbF+3Szo+JKzskGRottIcWbs7+hiU4OCOik69PU5 Sec4zI/R3/k8J2LC3v3gCyaDC8ToyDjKQCdmfLomYN29Qhcs227DCozQGlV2i8dq ApALbgfBBukXdv7EBW1UkBkxkB8w5yuhyhfbw/NdWgOAl1WPpcolbNRX9RB2fyXk OxjS5iNL8qd0QR3c6rMOIC0C3gxUiyoxlI/Hs5daEesvbko570z+uYsXPmrS9VCJ N0vCWxMhQKgE19fjaJKJL0be4lyXoI25cSR8I2JtsqbzPl9GkM5v5Ujrv7sTQmI4 PIrqtYX+MdmQxz8dBwVDrHXY2yNehBEhGZPLApdPIrgSRgR1RmE= =mxYm -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmF48VMACgkQmmx57+YA GNkAhBAAhkYmMNl9BApJJouyGHq+g/wIiqOQSz40S98/GN/dXUBXAgaDVXa6uffd QA0odK6RFekibOrgVJkMnLqNqv6HrMTOyZrrz0zoaNCcq2PUOmGX4m0GOtNNPWlx t914Ik5KPuSyoUp5xR0PFbDMbIc3ay0ML6CytFV29MKeDyB8OdwuvScaRGwYaqL1 pCfarHpj6LIoKrQmb2edf09FvYI7kYykWPvkqi/mcfzYXVp1xEhLDYm1ExXJKfQv Vos181Umf85omLkC5d23RwJq4A9SFbDBmpC2sopbJUk+P51vmkawFNE4Yz/SzLbk 33KwhRCqfZSLvL9KDeP91ECkCVtvjTZ7qKhgErN5ylpGYcDiJNTFHQNnqXgQInak LHeyiy0X5ENhgFXVmeV6y1kBDf98opmFAsInLaqEPKF76PNyLBLVbd9rPDwBN41I PSXQJU1rhToE/zNd0FNzOxnDcuEYQxMz84v7T+ntevmPM/KS7Y6IQmyLQeEr4YrQ sLJIJHiONfA3gQuAn3mNed+gV6PhEonAazWmL9MCLoIiz/Q/u3WuSbhHUEORUAJ2 n2JKlCAEKk7ZzutJxnkaFdsdEdbk+sfZ4BNOEBWEElRpoKIwPtDTBV4GCLZIdVlO j0R2Srhx07eNX8xtfpkq4yjraLUR8UqjRBeTZCRuEIPF8LwecA4= =Vx3C -----END PGP SIGNATURE----- Merge tag 'soc-fsl-fix-v5.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/leo/linux into arm/fixes NXP/FSL SoC driver fixes for v5.15 DPAA2 DPIO driver - replace smp_processor_id with raw_smp_processor_id to fix preempt debug BUG - use the combined functions to protect critical zone to fix deadlock DPAA2 console - free buffer before returning from dpaa2_console_read * tag 'soc-fsl-fix-v5.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/leo/linux: 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 Link: https://lore.kernel.org/r/20211026235744.19258-1-leoyang.li@nxp.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Коммит
76f7923166
|
@ -231,6 +231,7 @@ static ssize_t dpaa2_console_read(struct file *fp, char __user *buf,
|
|||
cd->cur_ptr += bytes;
|
||||
written += bytes;
|
||||
|
||||
kfree(kbuf);
|
||||
return written;
|
||||
|
||||
err_free_buf:
|
||||
|
|
|
@ -59,7 +59,7 @@ static inline struct dpaa2_io *service_select_by_cpu(struct dpaa2_io *d,
|
|||
* potentially being migrated away.
|
||||
*/
|
||||
if (cpu < 0)
|
||||
cpu = smp_processor_id();
|
||||
cpu = raw_smp_processor_id();
|
||||
|
||||
/* If a specific cpu was requested, pick it up immediately */
|
||||
return dpio_by_cpu[cpu];
|
||||
|
|
|
@ -732,8 +732,7 @@ int qbman_swp_enqueue_multiple_mem_back(struct qbman_swp *s,
|
|||
int i, num_enqueued = 0;
|
||||
unsigned long irq_flags;
|
||||
|
||||
spin_lock(&s->access_spinlock);
|
||||
local_irq_save(irq_flags);
|
||||
spin_lock_irqsave(&s->access_spinlock, irq_flags);
|
||||
|
||||
half_mask = (s->eqcr.pi_ci_mask>>1);
|
||||
full_mask = s->eqcr.pi_ci_mask;
|
||||
|
@ -744,8 +743,7 @@ int qbman_swp_enqueue_multiple_mem_back(struct qbman_swp *s,
|
|||
s->eqcr.available = qm_cyc_diff(s->eqcr.pi_ring_size,
|
||||
eqcr_ci, s->eqcr.ci);
|
||||
if (!s->eqcr.available) {
|
||||
local_irq_restore(irq_flags);
|
||||
spin_unlock(&s->access_spinlock);
|
||||
spin_unlock_irqrestore(&s->access_spinlock, irq_flags);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -784,8 +782,7 @@ int qbman_swp_enqueue_multiple_mem_back(struct qbman_swp *s,
|
|||
dma_wmb();
|
||||
qbman_write_register(s, QBMAN_CINH_SWP_EQCR_PI,
|
||||
(QB_RT_BIT)|(s->eqcr.pi)|s->eqcr.pi_vb);
|
||||
local_irq_restore(irq_flags);
|
||||
spin_unlock(&s->access_spinlock);
|
||||
spin_unlock_irqrestore(&s->access_spinlock, irq_flags);
|
||||
|
||||
return num_enqueued;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче