On 2017-10-03 12:49:19 [-0300], Arnaldo Carvalho de Melo wrote:
> From: Arnaldo Carvalho de Melo <a...@redhat.com>
> 
> 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

Reply via email to