Re: [PATCH] net: liquidio: avoid sleeping allocation under octeon_devices_lock
From: Simon Horman
Date: Wed Sep 02 2026 - 12:05:32 EST
On Tue, Aug 25, 2026 at 04:50:55PM +0800, Yang Zi wrote:
> octeon_allocate_device() holds the spinlock octeon_devices_lock while
> calling octeon_allocate_device_mem(), which uses vzalloc(). vzalloc()
> can sleep, so this is a "scheduling while atomic" bug that can trigger a
> sleeping-in-atomic warning (or deadlock on a preemptible kernel).
>
> The memory allocation does not touch octeon_device[], octeon_device_count
> or the free-slot search, so it does not need the lock. Move the
> octeon_allocate_device_mem() call ahead of the lock: allocate the device
> memory first, then take the lock only to find a free slot and register
> the new device in the octeon_device[] array. If no slot is available
> (all MAX_OCTEON_DEVICES slots in use), free the freshly allocated memory
> and return NULL as before.
>
> The lock therefore continues to protect exactly the data it documents:
> the octeon_device[] array and octeon_device_count.
>
> Signed-off-by: Yang Zi <2959243019@xxxxxx>
This patch has been marked as Not Applicable in patchwork.
I assume that is because it doesn't apply.
Which I believe, in turn, is because it is whitespace mangled:
the tabs appear to have been substituted for combinations
of spaces and non-breaking spaces.
Please consider updating the way that you send patches -
e.g. using b4 or a different mail server - and reposting.