Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: scsi: ufs: core: Avoid possible memory reclaim deadlock in TX EQTR context TX EQTR may run while devfreq gear scaling has quiesced the UFS tagset. In that context, functions ufshcd_tx_eqtr(), __ufshcd_tx_eqtr() and ufs_qcom_get_rx_fom() allocate memory with GFP_KERNEL. If direct reclaim is triggered, reclaim/writeback can depend on I/O to UFS device. Because the queue is quiesced, this can cause deadlock. Use memalloc_noio_save/restore() in ufshcd_tx_eqtr() to cover all allocations in the TX EQTR call tree, including: - params->eqtr_record in ufshcd_tx_eqtr() - eqtr_data in __ufshcd_tx_eqtr() - params in ufs_qcom_get_rx_fom() This is preferred over tagging individual call sites with GFP_NOIO, as it automatically covers any future allocations added anywhere in the call tree without requiring each caller to be aware of this constraint. [mkp: fix label as suggested by Bart]
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 03e5d38e2f985d8d0b0a60508c0b422f664808e3 before a28a7d9b3bb116da788ae492c90465ec1a7fa6e8; affected 03e5d38e2f985d8d0b0a60508c0b422f664808e3 before 760fc6f0e25a72832c2fcf37ecf5f1b770ec8374 |
| Linux / Linux | affected 7.1; unaffected 0 before 7.1; unaffected 7.2.6 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.