[POC][PATCH 30/83] sparc: get rid of pointless casts

From: Al Viro
Date: Mon Dec 21 2015 - 19:05:16 EST


From: Al Viro <viro@xxxxxxxxxxxxxxxxxx>

Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
---
arch/sparc/include/asm/dma.h | 2 +-
arch/sparc/include/asm/iommu_64.h | 2 +-
arch/sparc/kernel/iommu.c | 8 ++++----
arch/sparc/kernel/ioport.c | 8 ++++----
arch/sparc/kernel/irq_64.c | 4 ++--
arch/sparc/kernel/pci_fire.c | 18 ++++++++----------
arch/sparc/kernel/pci_sun4v.c | 24 +++++++++++++-----------
arch/sparc/mm/io-unit.c | 9 ++++-----
arch/sparc/mm/iommu.c | 10 +++++-----
9 files changed, 42 insertions(+), 43 deletions(-)

diff --git a/arch/sparc/include/asm/dma.h b/arch/sparc/include/asm/dma.h
index 3d434ef..9bf9f53 100644
--- a/arch/sparc/include/asm/dma.h
+++ b/arch/sparc/include/asm/dma.h
@@ -101,7 +101,7 @@ struct sparc32_dma_ops {
void (*release_scsi_one)(struct device *, __u32, unsigned long);
void (*release_scsi_sgl)(struct device *, struct scatterlist *,int);
#ifdef CONFIG_SBUS
- int (*map_dma_area)(struct device *, dma_addr_t *, unsigned long, unsigned long, int);
+ int (*map_dma_area)(struct device *, dma_addr_t *, void *, unsigned long, int);
void (*unmap_dma_area)(struct device *, unsigned long, int);
#endif
};
diff --git a/arch/sparc/include/asm/iommu_64.h b/arch/sparc/include/asm/iommu_64.h
index cd0d69f..e781f29 100644
--- a/arch/sparc/include/asm/iommu_64.h
+++ b/arch/sparc/include/asm/iommu_64.h
@@ -36,7 +36,7 @@ struct iommu {
unsigned long iommu_tags;
unsigned long iommu_ctxflush;
unsigned long write_complete_reg;
- unsigned long dummy_page;
+ void *dummy_page;
unsigned long dummy_page_pa;
unsigned long ctx_lowest_free;
DECLARE_BITMAP(ctx_bitmap, IOMMU_NUM_CTXS);
diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c
index 18a40c6..47c2822 100644
--- a/arch/sparc/kernel/iommu.c
+++ b/arch/sparc/kernel/iommu.c
@@ -124,8 +124,8 @@ int iommu_table_init(struct iommu *iommu, int tsbsize,
printk(KERN_ERR "IOMMU: Error, gfp(dummy_page) failed.\n");
goto out_free_map;
}
- iommu->dummy_page = (unsigned long) page_address(page);
- memset((void *)iommu->dummy_page, 0, PAGE_SIZE);
+ iommu->dummy_page = page_address(page);
+ memset(iommu->dummy_page, 0, PAGE_SIZE);
iommu->dummy_page_pa = (unsigned long) __pa(iommu->dummy_page);

/* Now allocate and setup the IOMMU page table itself. */
@@ -143,8 +143,8 @@ int iommu_table_init(struct iommu *iommu, int tsbsize,
return 0;

out_free_dummy_page:
- free_page((void *)iommu->dummy_page);
- iommu->dummy_page = 0UL;
+ free_page(iommu->dummy_page);
+ iommu->dummy_page = NULL;

out_free_map:
kfree(iommu->tbl.map);
diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c
index 39b406a..3bd3481 100644
--- a/arch/sparc/kernel/ioport.c
+++ b/arch/sparc/kernel/ioport.c
@@ -264,7 +264,7 @@ static void *sbus_alloc_coherent(struct device *dev, size_t len,
{
struct platform_device *op = to_platform_device(dev);
unsigned long len_total = PAGE_ALIGN(len);
- unsigned long va;
+ void *va;
struct resource *res;
int order;

@@ -278,8 +278,8 @@ static void *sbus_alloc_coherent(struct device *dev, size_t len,
}

order = get_order(len_total);
- va = __get_free_pages(gfp, order);
- if (va == 0)
+ va = (void *)__get_free_pages(gfp, order);
+ if (!va)
goto err_nopages;

if ((res = kzalloc(sizeof(struct resource), GFP_KERNEL)) == NULL)
@@ -309,7 +309,7 @@ err_noiommu:
err_nova:
kfree(res);
err_nomem:
- free_pages((void *)va, order);
+ free_pages(va, order);
err_nopages:
return NULL;
}
diff --git a/arch/sparc/kernel/irq_64.c b/arch/sparc/kernel/irq_64.c
index 24847b2..e2d198d 100644
--- a/arch/sparc/kernel/irq_64.c
+++ b/arch/sparc/kernel/irq_64.c
@@ -1033,11 +1033,11 @@ static void __init alloc_one_queue(unsigned long *pa_ptr, unsigned long qmask)
static void __init init_cpu_send_mondo_info(struct trap_per_cpu *tb)
{
#ifdef CONFIG_SMP
- unsigned long page;
+ void *page;

BUILD_BUG_ON((NR_CPUS * sizeof(u16)) > (PAGE_SIZE - 64));

- page = (unsigned long)get_zeroed_page(GFP_KERNEL);
+ page = get_zeroed_page(GFP_KERNEL);
if (!page) {
prom_printf("SUN4V: Error, cannot allocate cpu mondo page.\n");
prom_halt();
diff --git a/arch/sparc/kernel/pci_fire.c b/arch/sparc/kernel/pci_fire.c
index b8ac1bb..ff44386 100644
--- a/arch/sparc/kernel/pci_fire.c
+++ b/arch/sparc/kernel/pci_fire.c
@@ -228,17 +228,18 @@ static int pci_fire_msi_teardown(struct pci_pbm_info *pbm, unsigned long msi)

static int pci_fire_msiq_alloc(struct pci_pbm_info *pbm)
{
- unsigned long pages, order, i;
+ unsigned long order, i;
+ void *pages;

order = get_order(512 * 1024);
- pages = __get_free_pages(GFP_KERNEL | __GFP_COMP, order);
- if (pages == 0UL) {
+ pages = (void *)__get_free_pages(GFP_KERNEL | __GFP_COMP, order);
+ if (!pages) {
printk(KERN_ERR "MSI: Cannot allocate MSI queues (o=%lu).\n",
order);
return -ENOMEM;
}
- memset((char *)pages, 0, PAGE_SIZE << order);
- pbm->msi_queues = (void *) pages;
+ memset(pages, 0, PAGE_SIZE << order);
+ pbm->msi_queues = pages;

upa_writeq((EVENT_QUEUE_BASE_ADDR_ALL_ONES |
__pa(pbm->msi_queues)),
@@ -260,12 +261,9 @@ static int pci_fire_msiq_alloc(struct pci_pbm_info *pbm)

static void pci_fire_msiq_free(struct pci_pbm_info *pbm)
{
- unsigned long pages, order;
+ void *pages = pbm->msi_queues;

- order = get_order(512 * 1024);
- pages = (unsigned long) pbm->msi_queues;
-
- free_pages((void *)pages, order);
+ free_pages(pages, get_order(512 * 1024));

pbm->msi_queues = NULL;
}
diff --git a/arch/sparc/kernel/pci_sun4v.c b/arch/sparc/kernel/pci_sun4v.c
index 3ea1937..9d84e4e 100644
--- a/arch/sparc/kernel/pci_sun4v.c
+++ b/arch/sparc/kernel/pci_sun4v.c
@@ -746,20 +746,21 @@ static int pci_sun4v_msi_teardown(struct pci_pbm_info *pbm, unsigned long msi)

static int pci_sun4v_msiq_alloc(struct pci_pbm_info *pbm)
{
- unsigned long q_size, alloc_size, pages, order;
+ unsigned long q_size, alloc_size, order;
+ void *pages;
int i;

q_size = pbm->msiq_ent_count * sizeof(struct pci_sun4v_msiq_entry);
alloc_size = (pbm->msiq_num * q_size);
order = get_order(alloc_size);
- pages = __get_free_pages(GFP_KERNEL | __GFP_COMP, order);
- if (pages == 0UL) {
+ pages = (void *)__get_free_pages(GFP_KERNEL | __GFP_COMP, order);
+ if (!pages) {
printk(KERN_ERR "MSI: Cannot allocate MSI queues (o=%lu).\n",
order);
return -ENOMEM;
}
- memset((char *)pages, 0, PAGE_SIZE << order);
- pbm->msi_queues = (void *) pages;
+ memset(pages, 0, PAGE_SIZE << order);
+ pbm->msi_queues = pages;

for (i = 0; i < pbm->msiq_num; i++) {
unsigned long err, base = __pa(pages + (i * q_size));
@@ -794,13 +795,14 @@ static int pci_sun4v_msiq_alloc(struct pci_pbm_info *pbm)
return 0;

h_error:
- free_pages((void *)pages, order);
+ free_pages(pages, order);
return -EINVAL;
}

static void pci_sun4v_msiq_free(struct pci_pbm_info *pbm)
{
- unsigned long q_size, alloc_size, pages, order;
+ unsigned long q_size, alloc_size, order;
+ void *pages;
int i;

for (i = 0; i < pbm->msiq_num; i++) {
@@ -813,9 +815,9 @@ static void pci_sun4v_msiq_free(struct pci_pbm_info *pbm)
alloc_size = (pbm->msiq_num * q_size);
order = get_order(alloc_size);

- pages = (unsigned long) pbm->msi_queues;
+ pages = pbm->msi_queues;

- free_pages((void *)pages, order);
+ free_pages(pages, order);

pbm->msi_queues = NULL;
}
@@ -937,12 +939,12 @@ static int pci_sun4v_probe(struct platform_device *op)
err = -ENOMEM;
if (!iommu_batch_initialized) {
for_each_possible_cpu(i) {
- unsigned long page = (unsigned long)get_zeroed_page(GFP_KERNEL);
+ u64 *page = get_zeroed_page(GFP_KERNEL);

if (!page)
goto out_err;

- per_cpu(iommu_batch, i).pglist = (u64 *) page;
+ per_cpu(iommu_batch, i).pglist = page;
}
iommu_batch_initialized = 1;
}
diff --git a/arch/sparc/mm/io-unit.c b/arch/sparc/mm/io-unit.c
index f311bf2..707d5a0 100644
--- a/arch/sparc/mm/io-unit.c
+++ b/arch/sparc/mm/io-unit.c
@@ -200,10 +200,10 @@ static void iounit_release_scsi_sgl(struct device *dev, struct scatterlist *sg,
}

#ifdef CONFIG_SBUS
-static int iounit_map_dma_area(struct device *dev, dma_addr_t *pba, unsigned long va, unsigned long addr, int len)
+static int iounit_map_dma_area(struct device *dev, dma_addr_t *pba, void *va, unsigned long addr, int len)
{
struct iounit_struct *iounit = dev->archdata.iommu;
- unsigned long page, end;
+ unsigned long end;
pgprot_t dvma_prot;
iopte_t __iomem *iopte;

@@ -212,7 +212,6 @@ static int iounit_map_dma_area(struct device *dev, dma_addr_t *pba, unsigned lon
dvma_prot = __pgprot(SRMMU_CACHE | SRMMU_ET_PTE | SRMMU_PRIV);
end = PAGE_ALIGN((addr + len));
while(addr < end) {
- page = va;
{
pgd_t *pgdp;
pmd_t *pmdp;
@@ -223,12 +222,12 @@ static int iounit_map_dma_area(struct device *dev, dma_addr_t *pba, unsigned lon
pmdp = pmd_offset(pgdp, addr);
ptep = pte_offset_map(pmdp, addr);

- set_pte(ptep, mk_pte(virt_to_page(page), dvma_prot));
+ set_pte(ptep, mk_pte(virt_to_page(va), dvma_prot));

i = ((addr - IOUNIT_DMA_BASE) >> PAGE_SHIFT);

iopte = iounit->page_table + i;
- sbus_writel(MKIOPTE(__pa(page)), iopte);
+ sbus_writel(MKIOPTE(__pa(va)), iopte);
}
addr += PAGE_SIZE;
va += PAGE_SIZE;
diff --git a/arch/sparc/mm/iommu.c b/arch/sparc/mm/iommu.c
index 491511d..f9d30bd 100644
--- a/arch/sparc/mm/iommu.c
+++ b/arch/sparc/mm/iommu.c
@@ -321,7 +321,7 @@ static void iommu_release_scsi_sgl(struct device *dev, struct scatterlist *sg, i
}

#ifdef CONFIG_SBUS
-static int iommu_map_dma_area(struct device *dev, dma_addr_t *pba, unsigned long va,
+static int iommu_map_dma_area(struct device *dev, dma_addr_t *pba, void *va,
unsigned long addr, int len)
{
struct iommu_struct *iommu = dev->archdata.iommu;
@@ -330,7 +330,7 @@ static int iommu_map_dma_area(struct device *dev, dma_addr_t *pba, unsigned long
iopte_t *first;
int ioptex;

- BUG_ON((va & ~PAGE_MASK) != 0);
+ BUG_ON(((unsigned long)va & ~PAGE_MASK) != 0);
BUG_ON((addr & ~PAGE_MASK) != 0);
BUG_ON((len & ~PAGE_MASK) != 0);

@@ -344,7 +344,7 @@ static int iommu_map_dma_area(struct device *dev, dma_addr_t *pba, unsigned long
first = iopte;
end = addr + len;
while(addr < end) {
- page = va;
+ page = (unsigned long)va;
{
pgd_t *pgdp;
pmd_t *pmdp;
@@ -361,10 +361,10 @@ static int iommu_map_dma_area(struct device *dev, dma_addr_t *pba, unsigned long
pmdp = pmd_offset(pgdp, addr);
ptep = pte_offset_map(pmdp, addr);

- set_pte(ptep, mk_pte(virt_to_page(page), dvma_prot));
+ set_pte(ptep, mk_pte(virt_to_page(va), dvma_prot));
}
iopte_val(*iopte++) =
- MKIOPTE(page_to_pfn(virt_to_page(page)), ioperm_noc);
+ MKIOPTE(page_to_pfn(virt_to_page(va)), ioperm_noc);
addr += PAGE_SIZE;
va += PAGE_SIZE;
}
--
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/