mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Al Viro <viro@ZenIV.linux.org.uk>
To: linux-kernel@vger.kernel.org
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Subject: [POC][PATCH 80/83] [sun3] try to sort dvma types out
Date: Mon, 21 Dec 2015 23:47:53 +0000	[thread overview]
Message-ID: <1450741676-5865-80-git-send-email-viro@ZenIV.linux.org.uk> (raw)
In-Reply-To: <20151221234615.GW20997@ZenIV.linux.org.uk>

From: Al Viro <viro@zeniv.linux.org.uk>

[I've pretty much zero confidence in that one - if anything, it would need
to be split]

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
 arch/m68k/include/asm/dvma.h             | 21 +++++--------
 arch/m68k/sun3/dvma.c                    | 31 ++++++++-----------
 arch/m68k/sun3/sun3dvma.c                | 52 ++++++++++++++------------------
 arch/m68k/sun3x/dvma.c                   | 15 +++------
 drivers/net/ethernet/i825xx/sun3_82586.c | 13 ++++----
 drivers/scsi/sun3_scsi.c                 | 23 ++++++--------
 6 files changed, 64 insertions(+), 91 deletions(-)

diff --git a/arch/m68k/include/asm/dvma.h b/arch/m68k/include/asm/dvma.h
index 890bbf7..1fa85e5 100644
--- a/arch/m68k/include/asm/dvma.h
+++ b/arch/m68k/include/asm/dvma.h
@@ -16,18 +16,16 @@
 #define DVMA_PAGE_ALIGN(addr)	ALIGN(addr, DVMA_PAGE_SIZE)
 
 extern void dvma_init(void);
-extern int dvma_map_iommu(unsigned long kaddr, unsigned long baddr,
-			  int len);
+extern int dvma_map_iommu(void *kaddr, unsigned long baddr, int len);
 
 #define dvma_malloc(x) dvma_malloc_align(x, 0)
 #define dvma_map(x, y) dvma_map_align(x, y, 0)
 #define dvma_map_vme(x, y) (dvma_map(x, y) & 0xfffff)
 #define dvma_map_align_vme(x, y, z) (dvma_map_align (x, y, z) & 0xfffff)
-extern unsigned long dvma_map_align(unsigned long kaddr, int len,
-			    int align);
+extern unsigned long dvma_map_align(void *kaddr, int len, int align);
 extern void *dvma_malloc_align(unsigned long len, unsigned long align);
 
-extern void dvma_unmap(void *baddr);
+extern void dvma_unmap(unsigned long);
 extern void dvma_free(void *vaddr);
 
 
@@ -51,14 +49,13 @@ extern void dvma_free(void *vaddr);
 
 /* virt <-> phys conversions */
 #define dvma_vtop(x) ((unsigned long)(x) & 0xffffff)
-#define dvma_ptov(x) ((unsigned long)(x) | 0xf000000)
+#define dvma_ptov(x) ((void *)((unsigned long)(x) | 0xf000000))
 #define dvma_vtovme(x) ((unsigned long)(x) & 0x00fffff)
-#define dvma_vmetov(x) ((unsigned long)(x) | 0xff00000)
+#define dvma_vmetov(x) ((void*)((unsigned long)(x) | 0xff00000))
 #define dvma_vtob(x) dvma_vtop(x)
 #define dvma_btov(x) dvma_ptov(x)
 
-static inline int dvma_map_cpu(unsigned long kaddr, unsigned long vaddr,
-			       int len)
+static inline int dvma_map_cpu(void *kaddr, void *vaddr, int len)
 {
 	return 0;
 }
@@ -75,11 +72,9 @@ static inline int dvma_map_cpu(unsigned long kaddr, unsigned long vaddr,
 #define IOMMU_ENTRIES              (IOMMU_TOTAL_ENTRIES - 0x80)
 
 #define dvma_vtob(x) ((unsigned long)(x) & 0x00ffffff)
-#define dvma_btov(x) ((unsigned long)(x) | 0xff000000)
-
-extern int dvma_map_cpu(unsigned long kaddr, unsigned long vaddr, int len);
-
+#define dvma_btov(x) ((void *)((unsigned long)(x) | 0xff000000))
 
+extern int dvma_map_cpu(void *kaddr, void *vaddr, int len);
 
 /* everything below this line is specific to dma used for the onboard
    ESP scsi on sun3x */
diff --git a/arch/m68k/sun3/dvma.c b/arch/m68k/sun3/dvma.c
index d95506e..0b0d352 100644
--- a/arch/m68k/sun3/dvma.c
+++ b/arch/m68k/sun3/dvma.c
@@ -20,47 +20,42 @@
 
 static unsigned long ptelist[120];
 
-static unsigned long dvma_page(unsigned long kaddr, unsigned long vaddr)
+static void *dvma_page(void *kaddr, void *vaddr)
 {
 	unsigned long pte;
 	unsigned long j;
 	pte_t ptep;
+	int idx;
 
 	j = *(volatile unsigned long *)kaddr;
 	*(volatile unsigned long *)kaddr = j;
 
 	ptep = pfn_pte(virt_to_pfn(kaddr), PAGE_KERNEL);
 	pte = pte_val(ptep);
-//		printk("dvma_remap: addr %lx -> %lx pte %08lx len %x\n",
+//		printk("dvma_remap: addr %p -> %lx pte %08lx len %x\n",
 //		       kaddr, vaddr, pte, len);
-	if(ptelist[(vaddr & 0xff000) >> PAGE_SHIFT] != pte) {
-		sun3_put_pte(vaddr, pte);
-		ptelist[(vaddr & 0xff000) >> PAGE_SHIFT] = pte;
-	}
+	idx = ((unsigned long)vaddr & 0xff000) >> PAGE_SHIFT;
 
-	return (vaddr + (kaddr & ~PAGE_MASK));
+	if (ptelist[idx] != pte) {
+		sun3_put_pte((unsigned long)vaddr, pte);
+		ptelist[idx] = pte;
+	}
 
+	return vaddr + offset_in_page(kaddr);
 }
 
-int dvma_map_iommu(unsigned long kaddr, unsigned long baddr,
-			      int len)
+int dvma_map_iommu(void *kaddr, unsigned long baddr, int len)
 {
+	void *vaddr = dvma_btov(baddr);
+	void *end = vaddr + len;
 
-	unsigned long end;
-	unsigned long vaddr;
-
-	vaddr = dvma_btov(baddr);
-
-	end = vaddr + len;
-
-	while(vaddr < end) {
+	while (vaddr < end) {
 		dvma_page(kaddr, vaddr);
 		kaddr += PAGE_SIZE;
 		vaddr += PAGE_SIZE;
 	}
 
 	return 0;
-
 }
 
 void __init sun3_dvma_init(void)
diff --git a/arch/m68k/sun3/sun3dvma.c b/arch/m68k/sun3/sun3dvma.c
index fdc4900..68eefa4 100644
--- a/arch/m68k/sun3/sun3dvma.c
+++ b/arch/m68k/sun3/sun3dvma.c
@@ -277,7 +277,7 @@ void __init dvma_init(void)
 
 }
 
-unsigned long dvma_map_align(unsigned long kaddr, int len, int align)
+unsigned long dvma_map_align(void *kaddr, int len, int align)
 {
 
 	unsigned long baddr;
@@ -287,58 +287,52 @@ unsigned long dvma_map_align(unsigned long kaddr, int len, int align)
 		len = 0x800;
 
 	if(!kaddr || !len) {
-//		printk("error: kaddr %lx len %x\n", kaddr, len);
+//		printk("error: kaddr %p len %x\n", kaddr, len);
 //		*(int *)4 = 0;
 		return 0;
 	}
 
 #ifdef DEBUG
-	printk("dvma_map request %08lx bytes from %08lx\n",
+	printk("dvma_map request %08lx bytes from %p\n",
 	       len, kaddr);
 #endif
-	off = kaddr & ~DVMA_PAGE_MASK;
-	kaddr &= PAGE_MASK;
+	off = (unsigned long)kaddr % DVMA_PAGE_SIZE;
+	kaddr -= off;
 	len += off;
-	len = ((len + (DVMA_PAGE_SIZE-1)) & DVMA_PAGE_MASK);
+	len = ALIGN(len, DVMA_PAGE_SIZE);
 
 	if(align == 0)
 		align = DVMA_PAGE_SIZE;
 	else
-		align = ((align + (DVMA_PAGE_SIZE-1)) & DVMA_PAGE_MASK);
+		align = ALIGN(align, DVMA_PAGE_SIZE);
 
 	baddr = get_baddr(len, align);
 //	printk("using baddr %lx\n", baddr);
 
-	if(!dvma_map_iommu(kaddr, baddr, len))
+	if (!dvma_map_iommu(kaddr, baddr, len))
 		return (baddr + off);
 
-	printk("dvma_map failed kaddr %lx baddr %lx len %x\n", kaddr, baddr, len);
+	printk("dvma_map failed kaddr %p baddr %lx len %x\n", kaddr, baddr, len);
 	BUG();
 	return 0;
 }
 EXPORT_SYMBOL(dvma_map_align);
 
-void dvma_unmap(void *baddr)
+void dvma_unmap(unsigned long baddr)
 {
-	unsigned long addr;
-
-	addr = (unsigned long)baddr;
 	/* check if this is a vme mapping */
-	if(!(addr & 0x00f00000))
-		addr |= 0xf00000;
-
-	free_baddr(addr);
-
-	return;
+	if (!(baddr & 0x00f00000))
+		baddr |= 0xf00000;
 
+	free_baddr(baddr);
 }
 EXPORT_SYMBOL(dvma_unmap);
 
 void *dvma_malloc_align(unsigned long len, unsigned long align)
 {
-	unsigned long kaddr;
+	void *kaddr;
 	unsigned long baddr;
-	unsigned long vaddr;
+	void *vaddr;
 
 	if(!len)
 		return NULL;
@@ -348,28 +342,28 @@ void *dvma_malloc_align(unsigned long len, unsigned long align)
 #endif
 	len = ((len + (DVMA_PAGE_SIZE-1)) & DVMA_PAGE_MASK);
 
-        if((kaddr = __get_free_pages(GFP_ATOMIC, get_order(len))) == 0)
+        if((kaddr = get_free_pages(GFP_ATOMIC, get_order(len))) == NULL)
 		return NULL;
 
-	if((baddr = (unsigned long)dvma_map_align(kaddr, len, align)) == 0) {
-		free_pages((void *)kaddr, get_order(len));
+	if((baddr = dvma_map_align(kaddr, len, align)) == 0) {
+		free_pages(kaddr, get_order(len));
 		return NULL;
 	}
 
 	vaddr = dvma_btov(baddr);
 
-	if(dvma_map_cpu(kaddr, vaddr, len) < 0) {
-		dvma_unmap((void *)baddr);
-		free_pages((void *)kaddr, get_order(len));
+	if (dvma_map_cpu(kaddr, vaddr, len) < 0) {
+		dvma_unmap(baddr);
+		free_pages(kaddr, get_order(len));
 		return NULL;
 	}
 
 #ifdef DEBUG
-	printk("mapped %08lx bytes %08lx kern -> %08lx bus\n",
+	printk("mapped %08lx bytes %p kern -> %08lx bus\n",
 	       len, kaddr, baddr);
 #endif
 
-	return (void *)vaddr;
+	return vaddr;
 
 }
 EXPORT_SYMBOL(dvma_malloc_align);
diff --git a/arch/m68k/sun3x/dvma.c b/arch/m68k/sun3x/dvma.c
index d5ddcda..a85faa5 100644
--- a/arch/m68k/sun3x/dvma.c
+++ b/arch/m68k/sun3x/dvma.c
@@ -79,18 +79,14 @@ void dvma_print (unsigned long dvma_addr)
 
 /* create a virtual mapping for a page assigned within the IOMMU
    so that the cpu can reach it easily */
-inline int dvma_map_cpu(unsigned long kaddr,
-			       unsigned long vaddr, int len)
+int dvma_map_cpu(void *k, void *v, int len)
 {
 	pgd_t *pgd;
-	unsigned long end;
+	unsigned long kaddr = (unsigned long)k & PAGE_MASK;
+	unsigned long vaddr = (unsigned long)v & PAGE_MASK;
+	unsigned long end = PAGE_ALIGN(vaddr + len);
 	int ret = 0;
 
-	kaddr &= PAGE_MASK;
-	vaddr &= PAGE_MASK;
-
-	end = PAGE_ALIGN(vaddr + len);
-
 #ifdef DEBUG
 	printk("dvma: mapping kern %08lx to virt %08lx\n",
 	       kaddr, vaddr);
@@ -148,8 +144,7 @@ inline int dvma_map_cpu(unsigned long kaddr,
 }
 
 
-inline int dvma_map_iommu(unsigned long kaddr, unsigned long baddr,
-				 int len)
+int dvma_map_iommu(void *kaddr, unsigned long baddr, int len)
 {
 	unsigned long end, index;
 
diff --git a/drivers/net/ethernet/i825xx/sun3_82586.c b/drivers/net/ethernet/i825xx/sun3_82586.c
index 353f57f6..a9a279f 100644
--- a/drivers/net/ethernet/i825xx/sun3_82586.c
+++ b/drivers/net/ethernet/i825xx/sun3_82586.c
@@ -131,7 +131,7 @@ static void    sun3_82586_dump(struct net_device *,void *);
 
 /* helper-functions */
 static int     init586(struct net_device *dev);
-static int     check586(struct net_device *dev,char *where,unsigned size);
+static int     check586(struct net_device *dev,unsigned long where,unsigned size);
 static void    alloc586(struct net_device *dev);
 static void    startrecv586(struct net_device *dev);
 static void   *alloc_rfa(struct net_device *dev,void *ptr);
@@ -203,7 +203,7 @@ static int sun3_82586_open(struct net_device *dev)
 /**********************************************
  * Check to see if there's an 82586 out there.
  */
-static int check586(struct net_device *dev,char *where,unsigned size)
+static int check586(struct net_device *dev,unsigned long where,unsigned size)
 {
 	struct priv pb;
 	struct priv *p = &pb;
@@ -211,7 +211,7 @@ static int check586(struct net_device *dev,char *where,unsigned size)
 	int i;
 
 	p->base = (unsigned long) dvma_btov(0);
-	p->memtop = (char *)dvma_btov((unsigned long)where);
+	p->memtop = dvma_btov(where);
 	p->scp = (struct scp_struct *)(p->base + SCP_DEFAULT_ADDRESS);
 	memset((char *)p->scp,0, sizeof(struct scp_struct));
 	for(i=0;i<sizeof(struct scp_struct);i++) /* memory was writeable? */
@@ -221,7 +221,7 @@ static int check586(struct net_device *dev,char *where,unsigned size)
 	if(p->scp->sysbus != SYSBUSVAL)
 		return 0;
 
-	iscp_addr = (char *)dvma_btov((unsigned long)where);
+	iscp_addr = dvma_btov(where);
 
 	p->iscp = (struct iscp_struct *) iscp_addr;
 	memset((char *)p->iscp,0, sizeof(struct iscp_struct));
@@ -366,14 +366,13 @@ static int __init sun3_82586_probe1(struct net_device *dev,int ioaddr)
 		retval = -ENODEV;
 		goto out;
 	}
-	if(!check586(dev,(char *) dev->mem_start,size)) {
+	if(!check586(dev, dev->mem_start,size)) {
 		printk("?memcheck, Can't find memory at 0x%lx with size %d!\n",dev->mem_start,size);
 		retval = -ENODEV;
 		goto out;
 	}
 
-	((struct priv *)netdev_priv(dev))->memtop =
-					(char *)dvma_btov(dev->mem_start);
+	((struct priv *)netdev_priv(dev))->memtop = dvma_btov(dev->mem_start);
 	((struct priv *)netdev_priv(dev))->base = (unsigned long) dvma_btov(0);
 	alloc586(dev);
 
diff --git a/drivers/scsi/sun3_scsi.c b/drivers/scsi/sun3_scsi.c
index 22a4283..5cfc634 100644
--- a/drivers/scsi/sun3_scsi.c
+++ b/drivers/scsi/sun3_scsi.c
@@ -100,7 +100,7 @@ static struct scsi_cmnd *sun3_dma_setup_done;
 static unsigned char *sun3_scsi_regp;
 static volatile struct sun3_dma_regs *dregs;
 static struct sun3_udc_regs *udc_regs;
-static unsigned char *sun3_dma_orig_addr = NULL;
+static unsigned long sun3_dma_orig_addr;
 static unsigned long sun3_dma_orig_count = 0;
 static int sun3_dma_active = 0;
 static unsigned long last_residual = 0;
@@ -237,15 +237,15 @@ void sun3_sun3_debug (void)
 /* sun3scsi_dma_setup() -- initialize the dma controller for a read/write */
 static unsigned long sun3scsi_dma_setup(void *data, unsigned long count, int write_flag)
 {
-	void *addr;
+	unsigned long addr;
 
-	if(sun3_dma_orig_addr != NULL)
+	if (sun3_dma_orig_addr)
 		dvma_unmap(sun3_dma_orig_addr);
 
 #ifdef SUN3_SCSI_VME
-	addr = (void *)dvma_map_vme((unsigned long) data, count);
+	addr = dvma_map_vme(data, count);
 #else
-	addr = (void *)dvma_map((unsigned long) data, count);
+	addr = dvma_map(data, count);
 #endif
 		
 	sun3_dma_orig_addr = addr;
@@ -399,9 +399,7 @@ static int sun3scsi_dma_finish(int write_flag)
 	last_residual = fifo;
 	/* empty bytes from the fifo which didn't make it */
 	if ((!write_flag) && (dregs->csr & CSR_LEFT)) {
-		unsigned char *vaddr;
-
-		vaddr = (unsigned char *)dvma_vmetov(sun3_dma_orig_addr);
+		unsigned char *vaddr = dvma_vmetov(sun3_dma_orig_addr);
 
 		vaddr += (sun3_dma_orig_count - fifo);
 		vaddr--;
@@ -444,11 +442,8 @@ static int sun3scsi_dma_finish(int write_flag)
 
 	/* empty bytes from the fifo which didn't make it */
 	if((!write_flag) && (count - fifo) == 2) {
-		unsigned short data;
-		unsigned char *vaddr;
-
-		data = dregs->fifo_data;
-		vaddr = (unsigned char *)dvma_btov(sun3_dma_orig_addr);
+		unsigned short data = dregs->fifo_data;
+		unsigned char *vaddr = dvma_btov(sun3_dma_orig_addr);
 		
 		vaddr += (sun3_dma_orig_count - fifo);
 
@@ -458,7 +453,7 @@ static int sun3scsi_dma_finish(int write_flag)
 #endif
 
 	dvma_unmap(sun3_dma_orig_addr);
-	sun3_dma_orig_addr = NULL;
+	sun3_dma_orig_addr = 0;
 
 #ifdef SUN3_SCSI_VME
 	dregs->dma_addr_hi = 0;
-- 
2.1.4


  parent reply	other threads:[~2015-12-21 23:48 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-21 23:46 [RFC] free_pages stuff Al Viro
2015-12-21 23:46 ` [POC][PATCH 01/83] switch free_page() from unsigned long to const void * Al Viro
2015-12-21 23:46 ` [POC][PATCH 02/83] switch free_pages() " Al Viro
2015-12-21 23:46 ` [POC][PATCH 03/83] switch get_zeroed_page() to returning " Al Viro
2015-12-21 23:46 ` [POC][PATCH 04/83] kill unused {get,free}_user_page() Al Viro
2015-12-21 23:46 ` [POC][PATCH 05/83] switch copy_mount_options to storing void * instead of unsigned long Al Viro
2015-12-21 23:46 ` [POC][PATCH 06/83] drivers/net/wireless/libertas/debugfs.c: get rid of pointless casts Al Viro
2015-12-21 23:46 ` [POC][PATCH 07/83] drivers/net/wireless/mwifiex/debugfs.c: " Al Viro
2015-12-21 23:46 ` [POC][PATCH 08/83] affs_evict_inode(): " Al Viro
2015-12-21 23:46 ` [POC][PATCH 09/83] configfs_follow_link(): " Al Viro
2015-12-21 23:46 ` [POC][PATCH 10/83] kernfs_iop_follow_link(): " Al Viro
2015-12-21 23:46 ` [POC][PATCH 11/83] sound/oss/vidc: keep dma_buf[] as pointers Al Viro
2015-12-21 23:46 ` [POC][PATCH 12/83] drivers/tty: get rid of pointless casts Al Viro
2015-12-21 23:46 ` [POC][PATCH 13/83] rds: keep pointers in ->m_page_addrs[] Al Viro
2015-12-21 23:46 ` [POC][PATCH 14/83] proc_dev_atm_read(): get rid of pointless casts Al Viro
2015-12-21 23:46 ` [POC][PATCH 15/83] qib get_map_page(): " Al Viro
2015-12-21 23:46 ` [POC][PATCH 16/83] user_namespace: " Al Viro
2015-12-21 23:46 ` [POC][PATCH 17/83] ftrace: " Al Viro
2015-12-21 23:46 ` [POC][PATCH 18/83] sysctl: " Al Viro
2015-12-21 23:46 ` [POC][PATCH 19/83] xenstored_local_init(): " Al Viro
2015-12-21 23:46 ` [POC][PATCH 20/83] staging/rdma: " Al Viro
2015-12-21 23:46 ` [POC][PATCH 21/83] c6x: remove unused macros Al Viro
2015-12-21 23:46 ` [POC][PATCH 22/83] [davinci] ccdc_update_raw_params() frees the wrong thing Al Viro
2015-12-21 23:46 ` [POC][PATCH 23/83] fd_dma_mem_free(): pass address as void * instead of unsigned long Al Viro
2015-12-21 23:46 ` [POC][PATCH 24/83] ppc: keep ->hpt_virt as a pointer Al Viro
2015-12-21 23:46 ` [POC][PATCH 25/83] dma_4u_alloc_coherent(): don't mix virtual and physical addresses Al Viro
2015-12-21 23:46 ` [POC][PATCH 26/83] dma_4v_alloc_coherent(): " Al Viro
2015-12-21 23:47 ` [POC][PATCH 27/83] new helper: get_dma_pages() Al Viro
2015-12-21 23:47 ` [POC][PATCH 28/83] make fd_dma_mem_alloc/nodma_mem_alloc return a pointer Al Viro
2015-12-21 23:47 ` [POC][PATCH 29/83] switch the remaining users of __get_dma_pages() to get_dma_pages() Al Viro
2015-12-21 23:47 ` [POC][PATCH 30/83] sparc: get rid of pointless casts Al Viro
2015-12-21 23:47 ` [POC][PATCH 31/83] efficeon: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 32/83] lguest: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 33/83] drivers/pci: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 34/83] drivers/s390: ger " Al Viro
2015-12-21 23:47 ` [POC][PATCH 35/83] s390 kvm: get " Al Viro
2015-12-21 23:47 ` [POC][PATCH 36/83] pcibios: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 37/83] ste_dma40: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 38/83] usb_mon: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 39/83] gnttab_end_foreign_access(): switch the last argument to void * Al Viro
2015-12-21 23:47 ` [POC][PATCH 40/83] nios2: dma_free_coherent(): get rid of pointless casts Al Viro
2015-12-21 23:47 ` [POC][PATCH 41/83] hsi: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 42/83] simserial: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 43/83] arm64 vdso: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 44/83] cris free_init_page(): switch to __free_page() Al Viro
2015-12-21 23:47 ` [POC][PATCH 45/83] arm: switch kvm_arm_hyp_stack_page to void * Al Viro
2015-12-21 23:47 ` [POC][PATCH 46/83] frv consistent_alloc(): switch page " Al Viro
2015-12-21 23:47 ` [POC][PATCH 47/83] ia64: uncached_add_chunk(): switch to __free_pages() Al Viro
2015-12-21 23:47 ` [POC][PATCH 48/83] jfs_readdir(): make dirent_buf a pointer Al Viro
2015-12-21 23:47 ` [POC][PATCH 49/83] get rid of casts in alloc_exact stuff Al Viro
2015-12-21 23:47 ` [POC][PATCH 50/83] s390 cmm: get rid of pointless casts Al Viro
2015-12-21 23:47 ` [POC][PATCH 51/83] microblaze consistent_alloc(): " Al Viro
2015-12-21 23:47 ` [POC][PATCH 52/83] devm_{get_}free_pages(): switch to pointers Al Viro
2015-12-21 23:47 ` [POC][PATCH 53/83] cavium: (partially) get rid of cargo-culting in allocator Al Viro
2015-12-21 23:47 ` [POC][PATCH 54/83] um: store stacks as pointers Al Viro
2015-12-21 23:47 ` [POC][PATCH 55/83] sh: get rid of pointless casts Al Viro
2015-12-21 23:47 ` [POC][PATCH 56/83] amd_gart_64: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 57/83] iwlegacy: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 58/83] iwlwifi: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 59/83] add pointer-returning variants of __get_free_pages/__get_free_page Al Viro
2015-12-21 23:47 ` [POC][PATCH 60/83] switch obvious cases to get_free_pages() Al Viro
2015-12-21 23:47 ` [POC][PATCH 61/83] switch obvious cases to get_free_page() Al Viro
2015-12-21 23:47 ` [POC][PATCH 62/83] m68k: switch pte_alloc_one_kernel() " Al Viro
2015-12-21 23:47 ` [POC][PATCH 63/83] switch kvmppc_core_vcpu_create_pr() " Al Viro
2015-12-21 23:47 ` [POC][PATCH 64/83] drivers/video/fbdev: switch to get_free_pages() Al Viro
2015-12-21 23:47 ` [POC][PATCH 65/83] um: switch to get_free_page() Al Viro
2015-12-21 23:47 ` [POC][PATCH 66/83] switch xen_get_swiotlb_free_pages() to returning a pointer Al Viro
2015-12-21 23:47 ` [POC][PATCH 67/83] mn10300 dma_alloc_coherent(): switch to get_free_pages() Al Viro
2015-12-21 23:47 ` [POC][PATCH 68/83] switch ps3_dma_map() and ps3_dma_region_ops->map() instances to physical address Al Viro
2015-12-21 23:47 ` [POC][PATCH 69/83] ps3_alloc_coherent(): get rid of pointless casts Al Viro
2015-12-21 23:47 ` [POC][PATCH 70/83] s390_dma_alloc(): page_to_phys() result is always a multiple of PAGE_SIZE Al Viro
2015-12-21 23:47 ` [POC][PATCH 71/83] s390_dma_alloc(): use page_address() Al Viro
2015-12-21 23:47 ` [POC][PATCH 72/83] [powerpc] switch cmm_page_array->pages[] to pointers Al Viro
2015-12-21 23:47 ` [POC][PATCH 73/83] niu.c: get rid of pointless casts Al Viro
2015-12-21 23:47 ` [POC][PATCH 74/83] [s390] switch pcpu_alloc_lowcore() to get_free_page() Al Viro
2015-12-21 23:47 ` [POC][PATCH 75/83] kill __get_free_page() Al Viro
2015-12-21 23:47 ` [POC][PATCH 76/83] [mips, s390, score] turn empty_zero_page into pointer Al Viro
2015-12-21 23:47 ` [POC][PATCH 77/83] sparc: switch to get_free_pages() Al Viro
2015-12-21 23:47 ` [POC][PATCH 78/83] x86: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 79/83] s390: turn suspend_zero_pages into a pointer Al Viro
2015-12-21 23:47 ` Al Viro [this message]
2015-12-21 23:47 ` [POC][PATCH 81/83] sba_iommu: get rid of pointless casts Al Viro
2015-12-21 23:47 ` [POC][PATCH 82/83] media/platform/omap: " Al Viro
2015-12-21 23:47 ` [POC][PATCH 83/83] nios2: " Al Viro
2015-12-22  0:03 ` [RFC] free_pages stuff Linus Torvalds
2015-12-22  1:04   ` Al Viro
     [not found]     ` <CA+55aFy9NrV_RnziN9z3p5O6rv1A0mirhLD0hL7Wrb77+YyBeg@mail.gmail.com>
2015-12-22  1:23       ` Linus Torvalds
2015-12-22  3:10         ` Al Viro
2015-12-22  2:22       ` Al Viro
2015-12-22  8:21         ` Geert Uytterhoeven
2015-12-22 21:04           ` Al Viro
2016-01-05 13:59             ` Michal Hocko
2016-01-05 15:26               ` Al Viro
2016-01-05 15:42                 ` Michal Hocko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1450741676-5865-80-git-send-email-viro@ZenIV.linux.org.uk \
    --to=viro@zeniv.linux.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®