From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ozlabs.org (bilbo.ozlabs.org [103.22.144.67]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 409q1P2YWNzF24n for ; Wed, 28 Mar 2018 11:45:45 +1100 (AEDT) Date: Wed, 28 Mar 2018 11:44:42 +1100 From: Paul Mackerras To: linuxppc-dev@ozlabs.org Cc: Alexey Kardashevskiy Subject: [PATCH] powerpc/powernv: Fix sparse data type warnings in pci-ioda.c Message-ID: <20180328004442.GA29865@fergus.ozlabs.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Gavin Shan The value passed to __raw_rm_writeq() and __raw_writeq() should be "u64" and "unsigned long". This fixes warning reported by sparse: gwshan@gwshan:~/sandbox/l$ make C=2 CF=-D__CHECK_ENDIAN__ \ arch/powerpc/platforms/powernv/pci-ioda.o arch/powerpc/platforms/powernv/pci-ioda.c:1794:41: \ warning: incorrect type in argument 1 (different base types) arch/powerpc/platforms/powernv/pci-ioda.c:1794:41: \ expected unsigned long long [unsigned] [usertype] val arch/powerpc/platforms/powernv/pci-ioda.c:1794:41: \ got restricted __be64 [usertype] arch/powerpc/platforms/powernv/pci-ioda.c:1796:38: \ warning: incorrect type in argument 1 (different base types) arch/powerpc/platforms/powernv/pci-ioda.c:1796:38: \ expected unsigned long [unsigned] v arch/powerpc/platforms/powernv/pci-ioda.c:1796:38: \ got restricted __be64 [usertype] This also fixes another warning reported by sparse: gwshan@gwshan:~/sandbox/l$ make C=2 CF=-D__CHECK_ENDIAN__ \ arch/powerpc/platforms/powernv/pci-ioda.o : arch/powerpc/platforms/powernv/pci-ioda.c:2647:45: \ warning: cast to restricted __be64 Signed-off-by: Gavin Shan Signed-off-by: Paul Mackerras --- diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c index a6c92c7..71de087 100644 --- a/arch/powerpc/platforms/powernv/pci-ioda.c +++ b/arch/powerpc/platforms/powernv/pci-ioda.c @@ -1976,9 +1976,11 @@ static void pnv_pci_p7ioc_tce_invalidate(struct iommu_table *tbl, mb(); /* Ensure above stores are visible */ while (start <= end) { if (rm) - __raw_rm_writeq(cpu_to_be64(start), invalidate); + __raw_rm_writeq((__force u64)cpu_to_be64(start), + invalidate); else - __raw_writeq(cpu_to_be64(start), invalidate); + __raw_writeq((__force unsigned long)cpu_to_be64(start), + invalidate); start += inc; } @@ -2055,9 +2057,10 @@ static void pnv_pci_phb3_tce_invalidate_entire(struct pnv_phb *phb, bool rm) mb(); /* Ensure previous TCE table stores are visible */ if (rm) - __raw_rm_writeq(cpu_to_be64(val), invalidate); + __raw_rm_writeq((__force u64)cpu_to_be64(val), invalidate); else - __raw_writeq(cpu_to_be64(val), invalidate); + __raw_writeq((__force unsigned long)cpu_to_be64(val), + invalidate); } static inline void pnv_pci_phb3_tce_invalidate_pe(struct pnv_ioda_pe *pe) @@ -2067,7 +2070,7 @@ static inline void pnv_pci_phb3_tce_invalidate_pe(struct pnv_ioda_pe *pe) unsigned long val = PHB3_TCE_KILL_INVAL_PE | (pe->pe_number & 0xFF); mb(); /* Ensure above stores are visible */ - __raw_writeq(cpu_to_be64(val), invalidate); + __raw_writeq((__force unsigned long)cpu_to_be64(val), invalidate); } static void pnv_pci_phb3_tce_invalidate(struct pnv_ioda_pe *pe, bool rm, @@ -2090,9 +2093,11 @@ static void pnv_pci_phb3_tce_invalidate(struct pnv_ioda_pe *pe, bool rm, while (start <= end) { if (rm) - __raw_rm_writeq(cpu_to_be64(start), invalidate); + __raw_rm_writeq((__force u64)cpu_to_be64(start), + invalidate); else - __raw_writeq(cpu_to_be64(start), invalidate); + __raw_writeq((__force unsigned long)cpu_to_be64(start), + invalidate); start += inc; } } @@ -2864,7 +2869,8 @@ static void pnv_pci_ioda2_table_do_free_pages(__be64 *addr, u64 *tmp = (u64 *) addr_ul; for (i = 0; i < size; ++i) { - unsigned long hpa = be64_to_cpu(tmp[i]); + unsigned long hpa = + be64_to_cpu((__force __be64)(tmp[i])); if (!(hpa & (TCE_PCI_READ | TCE_PCI_WRITE))) continue;