[PATCH] nvme-tcp: Fix misuse of __smp_processor_id with preemption enabled

Yi Zhang yi.zhang at redhat.com
Tue Mar 16 02:47:43 GMT 2021


Thanks.

Tested-by: Yi Zhang <yi.zhang at redhat.com>

On 3/16/21 4:53 AM, Sagi Grimberg wrote:
> For our pure advisory use-case, we only rely on this call as a hint
> so fix the warning complaints of using the smp_processor_id variants
> with preemption enabled.
>
> Fixes: db5ad6b7f8cd ("nvme-tcp: try to send request in queue_rq context")
> Fixes: ada831772188 ("nvme-tcp: Fix warning with CONFIG_DEBUG_PREEMPT")
> Signed-off-by: Sagi Grimberg <sagi at grimberg.me>
> ---
>   drivers/nvme/host/tcp.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/nvme/host/tcp.c b/drivers/nvme/host/tcp.c
> index bd931de44d6c..0ef72568a4dd 100644
> --- a/drivers/nvme/host/tcp.c
> +++ b/drivers/nvme/host/tcp.c
> @@ -287,7 +287,7 @@ static inline void nvme_tcp_queue_request(struct nvme_tcp_request *req,
>   	 * directly, otherwise queue io_work. Also, only do that if we
>   	 * are on the same cpu, so we don't introduce contention.
>   	 */
> -	if (queue->io_cpu == __smp_processor_id() &&
> +	if (queue->io_cpu == raw_smp_processor_id() &&
>   	    sync && empty && mutex_trylock(&queue->send_mutex)) {
>   		queue->more_requests = !last;
>   		nvme_tcp_send_all(queue);




More information about the Linux-nvme mailing list