From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Gunthorpe Subject: Re: [PATCH mlx5-next 4/4] net/mlx5: Remove spinlock support from mlx5_write64 Date: Mon, 21 Jan 2019 16:45:58 +0000 Message-ID: <20190121164551.GF25149@mellanox.com> References: <20190119003313.16711-1-saeedm@mellanox.com> <20190119003313.16711-5-saeedm@mellanox.com> <20190119074308.GH15600@mtr-leonro.mtl.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <20190119074308.GH15600@mtr-leonro.mtl.com> Content-Language: en-US Content-ID: <8F2FC08BB4A8604D9574BF733ECC30E2@eurprd05.prod.outlook.com> Sender: netdev-owner@vger.kernel.org To: Leon Romanovsky Cc: Saeed Mahameed , "netdev@vger.kernel.org" , "linux-rdma@vger.kernel.org" , Maxim Mikityanskiy , Eran Ben Elisha List-Id: linux-rdma@vger.kernel.org On Sat, Jan 19, 2019 at 12:43:14AM -0700, Leon Romanovsky wrote: > You need to do one of two things: > 1. Require CONFIG_64BIT and delete this 32bit code. > 2. Declare global mlx5 DB spinlock and use on 32bit systems, something > like this: > #if BITS_PER_LONG =3D=3D 64 > __raw_writeq(*(u64 *)val, dest); > #else > spin_lock_irqsave(doorbell_lock, flags); > __raw_writel((__force u32) val[0], dest); > __raw_writel((__force u32) val[1], dest + 4); > spin_unlock_irqrestore(doorbell_lock, flags); > #endif And why is this code using the __raw_ versions? Seems wrong too... Jason