Squashed backup commit (no shallow-clone history issues) of xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2 branch, upstream commit 9eece662e) plus all fixes applied to get everpal_defconfig building clean against a modern (GCC 15.2.0) toolchain -- see the previous commit message on the lineage-23.2 branch (also in this repo history is not available here since this is a squashed snapshot; full incremental history lives in the local DL380 checkout and the upstream GitHub remote). Upstream: https://github.com/xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2)
15 lines
787 B
Plaintext
15 lines
787 B
Plaintext
There is a potential for deadlock when allocating a struct sk_buff for
|
|
data that needs to be written out to aoe storage. If the data is
|
|
being written from a dirty page in order to free that page, and if
|
|
there are no other pages available, then deadlock may occur when a
|
|
free page is needed for the sk_buff allocation. This situation has
|
|
not been observed, but it would be nice to eliminate any potential for
|
|
deadlock under memory pressure.
|
|
|
|
Because ATA over Ethernet is not fragmented by the kernel's IP code,
|
|
the destructor member of the struct sk_buff is available to the aoe
|
|
driver. By using a mempool for allocating all but the first few
|
|
sk_buffs, and by registering a destructor, we should be able to
|
|
efficiently allocate sk_buffs without introducing any potential for
|
|
deadlock.
|