On Mon, Jan 21, 2019 at 8:46 AM Jason Gunthorpe <jgg@xxxxxxxxxxxx> wrote: > > 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 == 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... > for 64 and 32 as well? what is wrong with the raw version ? > Jason