Re: [PATCH 1/2] IB/hfi1: Use preempt_{dis,en}able_nort()

From: Sebastian Andrzej Siewior
Date: Thu Oct 05 2017 - 12:30:29 EST


On 2017-10-03 12:49:19 [-0300], Arnaldo Carvalho de Melo wrote:
> From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> diff --git a/drivers/infiniband/hw/hfi1/pio.c b/drivers/infiniband/hw/hfi1/pio.c
> index 615be68e40b3..3a30bde9a07b 100644
> --- a/drivers/infiniband/hw/hfi1/pio.c
> +++ b/drivers/infiniband/hw/hfi1/pio.c
> @@ -1421,7 +1421,7 @@ struct pio_buf *sc_buffer_alloc(struct send_context *sc, u32 dw_len,
>
> /* there is enough room */
>
> - preempt_disable();
> + preempt_disable_nort();
> this_cpu_inc(*sc->buffers_allocated);
>
> /* read this once */

please replace the preempt_disable() / enable with local_lock() /
unlock. The section does not look like it could cope with multiple users
dereferencing / using the same per-CPU variables.

Sebastian