Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933225AbcKPHFe (ORCPT ); Wed, 16 Nov 2016 02:05:34 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:33698 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751955AbcKPHFc (ORCPT ); Wed, 16 Nov 2016 02:05:32 -0500 Date: Wed, 16 Nov 2016 08:05:43 +0100 From: Greg KH To: Sergio Paracuellos Cc: devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, liodot@gmail.com Subject: Re: [PATCH v2] staging: slicoss: fix different address space warnings Message-ID: <20161116070543.GA11164@kroah.com> References: <1479269257-5913-1-git-send-email-sergio.paracuellos@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1479269257-5913-1-git-send-email-sergio.paracuellos@gmail.com> User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1457 Lines: 48 On Wed, Nov 16, 2016 at 05:07:37AM +0100, Sergio Paracuellos wrote: > This patch fix the following sparse warnings in slicoss driver: > warning: incorrect type in assignment (different address spaces) > > Changes in v2: > * Remove IOMEM_GET_FIELDADDR macro > * Add ioread64 and iowrite64 defines > > Signed-off-by: Sergio Paracuellos > --- > drivers/staging/slicoss/slicoss.c | 111 ++++++++++++++++++++++++++------------ > 1 file changed, 76 insertions(+), 35 deletions(-) > > diff --git a/drivers/staging/slicoss/slicoss.c b/drivers/staging/slicoss/slicoss.c > index d2929b9..d68a463 100644 > --- a/drivers/staging/slicoss/slicoss.c > +++ b/drivers/staging/slicoss/slicoss.c > @@ -128,6 +128,35 @@ > > MODULE_DEVICE_TABLE(pci, slic_pci_tbl); > > +#ifndef ioread64 > +#ifdef readq > +#define ioread64 readq > +#else > +#define ioread64 _ioread64 > +static inline u64 _ioread64(void __iomem *mmio) > +{ > + u64 low, high; > + > + low = ioread32(mmio); > + high = ioread32(mmio + sizeof(u32)); > + return low | (high << 32); > +} > +#endif > +#endif eek, no! Don't write common kernel functions in a driver just because some configuration option was incorrect. That implies that you really can't do that type of read/write for that platform, so maybe you shouldn't be doing it! Split this up into one patch that does the 32bit stuff, then worry about the 64bit stuff in a separate patch please. thanks, greg k-h