firewire: core: reallocate buffer for FCP address handlers when more than 4 are regis...
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sun, 3 Aug 2025 12:20:15 +0000 (21:20 +0900)
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sun, 3 Aug 2025 12:20:15 +0000 (21:20 +0900)
commit0342273e14c25971f2916de2b598db2e9cfeec15
tree2aa27ccc86772fd9fe8b04b2561a1da6c52458e1
parente884a8a0c573ca5c191b269f31993733ecb6250e
firewire: core: reallocate buffer for FCP address handlers when more than 4 are registered

The former commit has a limitation that only up to 4 FCP address
handlers could be processed per request. Although it suffices for most
use cases, it is technically a regression.

This commit lifts the restriction by reallocating the buffer from kernel
heap when more than 4 handlers are registered. The allocation is performed
within RCU read-side critical section, thus it uses GCP_ATOMIC flag. The
buffer size is rounded up to the next power of two to align with kmalloc
allocation units.

Link: https://lore.kernel.org/r/20250803122015.236493-5-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
drivers/firewire/core-transaction.c