[PATCH 06/16] drm: don't pass __GFP_COMP to dma_alloc_coherent in drm_pci_alloc

2019-06-14 Thread Christoph Hellwig
The memory returned from dma_alloc_coherent is opaqueue to the user, thus the exact way of page refcounting shall not matter either. Signed-off-by: Christoph Hellwig --- drivers/gpu/drm/drm_bufs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/drm_bufs.c b

use exact allocation for dma coherent memory

2019-06-14 Thread Christoph Hellwig
Hi all, various architectures have used exact memory allocations for dma allocations for a long time, but x86 and thus the common code based on it kept using our normal power of two allocator, which tends to waste a lot of memory for certain allocations. Switching to a slightly cleaned up alloc_p

[PATCH 05/16] drm: don't mark pages returned from drm_pci_alloc reserved

2019-06-14 Thread Christoph Hellwig
We are not allowed to call virt_to_page on pages returned from dma_alloc_coherent, as in many cases the virtual address returned is aactually a kernel direct mapping. Also there generally is no need to mark dma memory as reserved. Signed-off-by: Christoph Hellwig --- drivers/gpu/drm/drm_bufs.c

[PATCH 10/16] iwlwifi: stop passing bogus gfp flags arguments to dma_alloc_coherent

2019-06-14 Thread Christoph Hellwig
dma_alloc_coherent is not just the page allocator. The only valid arguments to pass are either GFP_ATOMIC or GFP_ATOMIC with possible modifiers of __GFP_NORETRY or __GFP_NOWARN. Signed-off-by: Christoph Hellwig --- drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 3 +-- drivers/net/wireless

[PATCH 07/16] IB/hfi1: stop passing bogus gfp flags arguments to dma_alloc_coherent

2019-06-14 Thread Christoph Hellwig
dma_alloc_coherent is not just the page allocator. The only valid arguments to pass are either GFP_ATOMIC or GFP_ATOMIC with possible modifiers of __GFP_NORETRY or __GFP_NOWARN. Signed-off-by: Christoph Hellwig --- drivers/infiniband/hw/hfi1/init.c | 22 +++--- 1 file changed

[PATCH 03/16] drm/i915: stop using drm_pci_alloc

2019-06-14 Thread Christoph Hellwig
Remove usage of the legacy drm PCI DMA wrappers, and with that the incorrect usage cocktail of __GFP_COMP, virt_to_page on DMA allocation and SetPageReserved. Signed-off-by: Christoph Hellwig --- drivers/gpu/drm/i915/i915_gem.c| 30 +- drivers/gpu/drm/i915

[PATCH 04/16] drm: move drm_pci_{alloc,free} to drm_legacy

2019-06-14 Thread Christoph Hellwig
These functions are rather broken in that they try to pass __GFP_COMP to dma_alloc_coherent, call virt_to_page on the return value and mess with PageReserved. And not actually used by any modern driver. Signed-off-by: Christoph Hellwig --- drivers/gpu/drm/drm_bufs.c | 85

[PATCH 11/16] s390/ism: stop passing bogus gfp flags arguments to dma_alloc_coherent

2019-06-14 Thread Christoph Hellwig
dma_alloc_coherent is not just the page allocator. The only valid arguments to pass are either GFP_ATOMIC or GFP_ATOMIC with possible modifiers of __GFP_NORETRY or __GFP_NOWARN. Signed-off-by: Christoph Hellwig --- drivers/s390/net/ism_drv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion

[PATCH 12/16] staging/comedi: mark as broken

2019-06-14 Thread Christoph Hellwig
comedi_buf.c abuse the DMA API in gravely broken ways, as it assumes it can call virt_to_page on the result, and the just remap it as uncached using vmap. Disable the driver until this API abuse has been fixed. Signed-off-by: Christoph Hellwig --- drivers/staging/comedi/Kconfig | 1 + 1 file

[PATCH 09/16] cnic: stop passing bogus gfp flags arguments to dma_alloc_coherent

2019-06-14 Thread Christoph Hellwig
dma_alloc_coherent is not just the page allocator. The only valid arguments to pass are either GFP_ATOMIC or GFP_ATOMIC with possible modifiers of __GFP_NORETRY or __GFP_NOWARN. Signed-off-by: Christoph Hellwig --- drivers/net/ethernet/broadcom/cnic.c | 4 ++-- 1 file changed, 2 insertions

[PATCH 13/16] mm: rename alloc_pages_exact_nid to alloc_pages_exact_node

2019-06-14 Thread Christoph Hellwig
This fits in with the naming scheme used by alloc_pages_node. Signed-off-by: Christoph Hellwig --- include/linux/gfp.h | 2 +- mm/page_alloc.c | 4 ++-- mm/page_ext.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/linux/gfp.h b/include/linux/gfp.h index

[PATCH 08/16] IB/qib: stop passing bogus gfp flags arguments to dma_alloc_coherent

2019-06-14 Thread Christoph Hellwig
dma_alloc_coherent is not just the page allocator. The only valid arguments to pass are either GFP_ATOMIC or GFP_ATOMIC with possible modifiers of __GFP_NORETRY or __GFP_NOWARN. Signed-off-by: Christoph Hellwig --- drivers/infiniband/hw/qib/qib_iba6120.c | 2 +- drivers/infiniband/hw/qib

[PATCH 14/16] mm: use alloc_pages_exact_node to implement alloc_pages_exact

2019-06-14 Thread Christoph Hellwig
No need to duplicate the logic over two functions that are almost the same. Signed-off-by: Christoph Hellwig --- include/linux/gfp.h | 5 +++-- mm/page_alloc.c | 39 +++ 2 files changed, 10 insertions(+), 34 deletions(-) diff --git a/include/linux/gfp.h

[PATCH 15/16] dma-mapping: clear __GFP_COMP in dma_alloc_attrs

2019-06-14 Thread Christoph Hellwig
. Signed-off-by: Christoph Hellwig --- arch/arm/mm/dma-mapping.c | 17 - kernel/dma/mapping.c | 9 + 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 0a75058c11f3..86135feb2c05 100644 --- a/arch

[PATCH 16/16] dma-mapping: use exact allocation in dma_alloc_contiguous

2019-06-14 Thread Christoph Hellwig
as well. Signed-off-by: Christoph Hellwig --- include/linux/dma-contiguous.h | 8 +--- kernel/dma/contiguous.c| 17 +++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/include/linux/dma-contiguous.h b/include/linux/dma-contiguous.h index c05d4e661489

Re: [PATCH 16/16] dma-mapping: use exact allocation in dma_alloc_contiguous

2019-06-14 Thread 'Christoph Hellwig'
On Fri, Jun 14, 2019 at 02:15:44PM +, David Laight wrote: > Does this still guarantee that requests for 16k will not cross a 16k boundary? > It looks like you are losing the alignment parameter. The DMA API never gave you alignment guarantees to start with, and you can get not naturally aligne

Re: [PATCH 12/16] staging/comedi: mark as broken

2019-06-14 Thread Christoph Hellwig
On Fri, Jun 14, 2019 at 04:02:39PM +0200, Greg KH wrote: > Perhaps a hint as to how we can fix this up? This is the first time > I've heard of the comedi code not handling dma properly. It can be fixed by: a) never calling virt_to_page (or vmalloc_to_page for that matter) on dma allocation

Re: [PATCH 16/16] dma-mapping: use exact allocation in dma_alloc_contiguous

2019-06-14 Thread 'Christoph Hellwig'
On Fri, Jun 14, 2019 at 03:01:22PM +, David Laight wrote: > I'm pretty sure there is a lot of code out there that makes that assumption. > Without it many drivers will have to allocate almost double the > amount of memory they actually need in order to get the required alignment. > So instead o

Re: [PATCH 16/16] dma-mapping: use exact allocation in dma_alloc_contiguous

2019-06-14 Thread 'Christoph Hellwig'
On Fri, Jun 14, 2019 at 04:05:33PM +0100, Robin Murphy wrote: > That said, I don't believe this particular patch should make any > appreciable difference - alloc_pages_exact() is still going to give back > the same base address as the rounded up over-allocation would, and > PAGE_ALIGN()ing the s

Re: [PATCH 12/16] staging/comedi: mark as broken

2019-06-14 Thread Christoph Hellwig
On Fri, Jun 14, 2019 at 05:30:32PM +0200, Greg KH wrote: > On Fri, Jun 14, 2019 at 04:48:57PM +0200, Christoph Hellwig wrote: > > On Fri, Jun 14, 2019 at 04:02:39PM +0200, Greg KH wrote: > > > Perhaps a hint as to how we can fix this up? This is the first time > > > I&

Re: [PATCH V4 03/16] scsi: lpfc: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
e-allocated one isn't > enough for the whole request. > > Reviewed by: Ewan D. Milne > Signed-off-by: Ming Lei Looks good, Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdr

Re: [PATCH V4 01/16] scsi: vmw_pscsi: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
e-allocated one isn't enough > for the whole request. > > Reviewed-by: Ewan D. Milne Looks good, Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Re: [PATCH V4 04/16] scsi: mvumi: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
e-allocated one > isn't enough for the whole request. > > Reviewed-by: Ewan D. Milne > Signed-off-by: Ming Lei Looks good, Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdr

Re: [PATCH V4 02/16] scsi: advansys: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
e-allocated one > isn't enough for the whole request. > > Reviewed-by: Ewan D. Milne > Signed-off-by: Ming Lei Looks good, Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdr

Re: [PATCH V4 05/16] scsi: ipr: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
> - for (i = 0; i < (len / bsize_elem); i++, buffer += bsize_elem) { > - struct page *page = sg_page(&scatterlist[i]); > + for (i = 0; i < (len / bsize_elem); i++, sg = sg_next(sg), buffer += > bsize_elem) { Please split the overly long line. > + struct page *page

Re: [PATCH V4 07/16] usb: image: microtek: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
Looks good, Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Re: [PATCH V4 06/16] scsi: pmcraid: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
Same kmap issue here that will need addressing. Otherwise looks good: Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Re: [PATCH V4 08/16] staging: unisys: visorhba: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
The patch itsel looks good, but another case of buggy kmap it seems: Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Re: [PATCH V4 09/16] staging: rtsx: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
On Mon, Jun 17, 2019 at 11:03:42AM +0800, Ming Lei wrote: > Use the scatterlist iterators and remove direct indexing of the > scatterlist array. > > This way allows us to pre-allocate one small scatterlist, which can be > chained with one runtime allocated scatterlist if the pre-allocated one > is

Re: [PATCH V4 10/16] s390: zfcp_fc: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
e-allocated one > isn't enough for the whole request. Looks good, Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Re: [PATCH V4 11/16] scsi: aha152x: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
Looks good, Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Re: [PATCH V4 12/16] scsi: imm: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
e-allocated one > isn't enough for the whole request. > > Signed-off-by: Ming Lei Looks good, Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Re: [PATCH V4 13/16] scsi: pcmcia: nsp_cs: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
e-allocated one > isn't enough for the whole request. > > Signed-off-by: Ming Lei Looks good, Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Re: [PATCH V4 14/16] scsi: ppa: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
e-allocated one > isn't enough for the whole request. > > Signed-off-by: Ming Lei Looks good, Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Re: [PATCH V4 15/16] scsi: wd33c93: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
e-allocated one > isn't enough for the whole request. > > Signed-off-by: Ming Lei Looks good, Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Re: [PATCH V4 16/16] NCR5380: Support chained sg lists

2019-06-17 Thread Christoph Hellwig
; This way allows us to pre-allocate one small scatterlist, which can be > chained with one runtime allocated scatterlist if the pre-allocated one > isn't enough for the whole request. Looks good, Reviewed-by: Christoph Hellwig ___ devel mai

Re: use exact allocation for dma coherent memory

2019-06-17 Thread Christoph Hellwig
> drivers/infiniband/hw/cxgb4/qp.c >129 static int alloc_host_sq(struct c4iw_rdev *rdev, struct t4_sq *sq) >130 { >131 sq->queue = dma_alloc_coherent(&(rdev->lldi.pdev->dev), > sq->memsize, >132 &(sq->dma_addr), GFP_KERNEL); >1

Re: [PATCH V4 09/16] staging: rtsx: use sg helper to operate scatterlist

2019-06-17 Thread Christoph Hellwig
> + struct scatterlist *sg = *cur_sg ?: > + (struct scatterlist *)scsi_sglist(srb); > + No need for the cast here. And I have to say I hate that GNU C non-standard shortshut in ? :. Why not simply: struct scatterlist *sg = *cur_sg;

Re: use exact allocation for dma coherent memory

2019-06-20 Thread Christoph Hellwig
On Wed, Jun 19, 2019 at 01:29:03PM -0300, Jason Gunthorpe wrote: > > Yes. This will blow up badly on many platforms, as sq->queue > > might be vmapped, ioremapped, come from a pool without page backing. > > Gah, this addr gets fed into io_remap_pfn_range/remap_pfn_range too.. > > Potnuri, you sh

Re: [PATCH] staging: comedi: use dma_mmap_coherent for DMA-able buffer mmap

2019-06-25 Thread Christoph Hellwig
>From the DMA point of view this looks good: Reviewed-by: Christoph Hellwig I still think that doing that SetPageReserved + remap_pfn_range dance for the normal memory allocations is a bad idea. Just use vm_insert_page on the page, in which case it doesn't need to be marked as Reserv

Re: use exact allocation for dma coherent memory

2019-07-01 Thread Christoph Hellwig
On Fri, Jun 14, 2019 at 03:47:10PM +0200, Christoph Hellwig wrote: > Switching to a slightly cleaned up alloc_pages_exact is pretty easy, > but it turns out that because we didn't filter valid gfp_t flags > on the DMA allocator, a bunch of drivers were passing __GFP_COMP > to it

Re: use exact allocation for dma coherent memory

2019-07-08 Thread Christoph Hellwig
On Tue, Jul 02, 2019 at 11:48:44AM +0200, Arend Van Spriel wrote: > You made me look ;-) Actually not touching my drivers so I'm off the hook. > However, I was wondering if drivers could know so I decided to look into > the DMA-API.txt documentation which currently states: > > """ > The flag para

Re: [PATCH] android: binder: fix type mismatch warning

2017-09-18 Thread Christoph Hellwig
On Mon, Sep 18, 2017 at 05:35:03PM +0200, Arnd Bergmann wrote: > Probably not on a native Android device or even a Chromebook that > ships a binder user space together with a kernel, but what about > people using "anbox" or similar projects that allow you to run > Android apps in a container? > >

Re: [PATCH] android: binder: fix type mismatch warning

2017-09-18 Thread Christoph Hellwig
On Mon, Sep 18, 2017 at 05:53:47PM +0200, Greg Kroah-Hartman wrote: > > It seems like a legitimate use case of the binder modules, but > > now there is a kernel Kconfig option that has to match a user > > space binary. > > So, should we revert that? > > I don't really know what to suggest here, s

Re: [PATCH V2] scsi: storvsc: Allow only one remove lun work item to be issued per lun

2017-10-19 Thread Christoph Hellwig
ot sure if Tejun is fine with using __WQ_LEGACY directly.. Except for this nit this looks fine to me: Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Re: [PATCH 2/2] drivers: visorbus: move driver out of staging

2017-11-17 Thread Christoph Hellwig
Please don' tcreate new subdirectories under include/linux if you don't have to. Also who outside of unisys has reviewed this whole code? Instead of a move please send an actual patchset to add the new files so people can review it just like any other code. ___

Re: [PATCH v2] drivers: visorbus: move driver out of staging

2017-12-12 Thread Christoph Hellwig
Hi David, as said before, please submit the actual files as new code to the kernel. The code will need a full review, and a simple move is not going to cut it. Posting the actual code as patches will allow for the proper review that is needed. ___ deve

Re: [PATCH 00/16] staging: gasket: return of the son of cleanups

2018-08-13 Thread Christoph Hellwig
Btw, can someone explain what 'gasket' even is? A quick look through the directory didn't provide any answers. And please don't just send that anser to me, put it in the source tree (Kconfig, and if needed another documentation file). ___ devel mailing

Re: [PATCH] binder: use standard functions to allocate fds

2018-08-29 Thread Christoph Hellwig
> config ANDROID_BINDER_IPC > bool "Android Binder IPC Driver" > - depends on MMU > + depends on MMU && !CPU_CACHE_VIVT Thats is a purely arm specific symbol which should not be used in common code. Nevermind that there generally should be no good reason for it. > + fixup->off

Re: [PATCH] storvsc: workaround for virtual DVD SCSI version

2017-03-07 Thread Christoph Hellwig
Thanks Stephen, this looks good to me: Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

[PATCH 06/39] ipv{4,6}/tcp: simplify procfs registration

2018-04-19 Thread Christoph Hellwig
Avoid most of the afinfo indirections and just call the proc helpers directly. Signed-off-by: Christoph Hellwig --- include/net/tcp.h | 11 ++ net/ipv4/tcp_ipv4.c | 85 + net/ipv6/tcp_ipv6.c | 27 +- 3 files changed, 53 insertions

[PATCH 10/39] net/kcm: simplify proc registration

2018-04-19 Thread Christoph Hellwig
Remove a couple indirections to make the code look like most other protocols. Signed-off-by: Christoph Hellwig --- net/kcm/kcmproc.c | 71 --- 1 file changed, 17 insertions(+), 54 deletions(-) diff --git a/net/kcm/kcmproc.c b/net/kcm/kcmproc.c index

[PATCH 09/39] ipv6/flowlabel: simplify pid namespace lookup

2018-04-19 Thread Christoph Hellwig
The shole seq_file sequence already operates under a single RCU lock pair, so move the pid namespace lookup into it, and stop grabbing a reference and remove all kinds of boilerplate code. Signed-off-by: Christoph Hellwig --- net/ipv6/ip6_flowlabel.c | 28 +--- 1 file

[PATCH 08/39] ipv{4, 6}/raw: simplify ѕeq_file code

2018-04-19 Thread Christoph Hellwig
Pass the hashtable to the proc private data instead of copying it into the per-file private data. Signed-off-by: Christoph Hellwig --- include/net/raw.h | 4 net/ipv4/raw.c| 36 net/ipv6/raw.c| 6 -- 3 files changed, 16 insertions(+), 30

[PATCH 03/39] proc: introduce proc_create_seq_private

2018-04-19 Thread Christoph Hellwig
Variant of proc_create_data that directly take a struct seq_operations argument + a private state size and drastically reduces the boilerplate code in the callers. All trivial callers converted over. Signed-off-by: Christoph Hellwig --- drivers/s390/cio/blacklist.c | 21

simplify procfs code for seq_file instances

2018-04-19 Thread Christoph Hellwig
We currently have hundreds of proc files that implement plain, read-only seq_file based interfaces. This series consolidates them using new procfs helpers that take the seq_operations or simple show callback directly. A git tree is available at: git://git.infradead.org/users/hch/misc.git pro

[PATCH 35/39] isdn: replace ->proc_fops with ->proc_show

2018-04-19 Thread Christoph Hellwig
And switch to proc_create_single_data. Signed-off-by: Christoph Hellwig --- drivers/isdn/capi/kcapi.c | 3 ++- drivers/isdn/gigaset/capi.c| 16 +--- drivers/isdn/hardware/avm/avmcard.h| 4 ++-- drivers/isdn/hardware/avm/b1.c | 17

[PATCH 14/39] proc: introduce proc_create_net_single

2018-04-19 Thread Christoph Hellwig
Variant of proc_create_data that directly take a seq_file show callback and deals with network namespaces in ->open and ->release. All callers of proc_create + single_open_net converted over, and single_{open,release}_net are removed entirely. Signed-off-by: Christoph Hellwig --- f

[PATCH 27/39] bonding: switch to proc_create_seq_data

2018-04-19 Thread Christoph Hellwig
And use proc private data directly instead of doing a detour through seq->private. Signed-off-by: Christoph Hellwig --- drivers/net/bonding/bond_procfs.c | 36 ++- 1 file changed, 6 insertions(+), 30 deletions(-) diff --git a/drivers/net/bonding/bond_procfs.c

[PATCH 32/39] bluetooth: switch to proc_create_seq_data

2018-04-19 Thread Christoph Hellwig
And use proc private data directly instead of doing a detour through seq->private and private state. Signed-off-by: Christoph Hellwig --- net/bluetooth/af_bluetooth.c | 40 +--- 1 file changed, 5 insertions(+), 35 deletions(-) diff --git a/net/blueto

[PATCH 22/39] jfs: simplify procfs code

2018-04-19 Thread Christoph Hellwig
Use remove_proc_subtree to remove the whole subtree on cleanup, and unwind the registration loop into individual calls. Switch to use proc_create_seq where applicable. Signed-off-by: Christoph Hellwig --- fs/jfs/jfs_debug.c| 43 ++- fs/jfs

[PATCH 11/39] netfilter/x_tables: simplify ѕeq_file code

2018-04-19 Thread Christoph Hellwig
Just use the address family from the proc private data instead of copying it into per-file data. Signed-off-by: Christoph Hellwig --- net/netfilter/x_tables.c | 39 +++ 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/net/netfilter/x_tables.c b

[PATCH 29/39] neigh: switch to proc_create_seq_data

2018-04-19 Thread Christoph Hellwig
And use proc private data directly instead of doing a detour through seq->private. Signed-off-by: Christoph Hellwig --- net/core/neighbour.c | 31 ++- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/net/core/neighbour.c b/net/core/neighbour.c in

[PATCH 16/39] ipmi: simplify procfs code

2018-04-19 Thread Christoph Hellwig
Use remove_proc_subtree to remove the whole subtree on cleanup instead of a hand rolled list of proc entries, unwind the registration loop into individual calls. Switch to use proc_create_single to further simplify the code. Signed-off-by: Christoph Hellwig --- drivers/char/ipmi

[PATCH 23/39] staging/rtl8192u: simplify procfs code

2018-04-19 Thread Christoph Hellwig
Unwind the registration loop into individual calls. Switch to use proc_create_single where applicable. Signed-off-by: Christoph Hellwig --- drivers/staging/rtl8192u/r8192U_core.c | 67 ++ 1 file changed, 14 insertions(+), 53 deletions(-) diff --git a/drivers/staging

[PATCH 15/39] acpi/battery: simplify procfs code

2018-04-19 Thread Christoph Hellwig
Use remove_proc_subtree to remove the whole subtree on cleanup, and unwind the registration loop into individual calls. Switch to use proc_create_seq where applicable. Signed-off-by: Christoph Hellwig --- drivers/acpi/battery.c | 121 + 1 file changed

[PATCH 05/39] ipv{4,6}/udp{,lite}: simplify proc registration

2018-04-19 Thread Christoph Hellwig
Remove a couple indirections to make the code look like most other protocols. Signed-off-by: Christoph Hellwig --- include/net/udp.h | 20 -- net/ipv4/udp.c | 99 +- net/ipv4/udplite.c | 21 +++--- net/ipv6/udp.c | 30

[PATCH 20/39] afs: simplify procfs code

2018-04-19 Thread Christoph Hellwig
Use remove_proc_subtree to remove the whole subtree on cleanup, and unwind the registration loop into individual calls. Switch to use proc_create_seq where applicable. Signed-off-by: Christoph Hellwig --- fs/afs/proc.c | 134 ++ 1 file changed

[PATCH 24/39] resource: switch to proc_create_seq_data

2018-04-19 Thread Christoph Hellwig
And use the root resource directly from the proc private data. Signed-off-by: Christoph Hellwig --- kernel/resource.c | 43 +-- 1 file changed, 5 insertions(+), 38 deletions(-) diff --git a/kernel/resource.c b/kernel/resource.c index 2af6c03858b9

[PATCH 01/39] net/can: single_open_net needs to be paired with single_release_net

2018-04-19 Thread Christoph Hellwig
Otherwise we will leak a reference to the network namespace. Signed-off-by: Christoph Hellwig --- net/can/bcm.c | 2 +- net/can/proc.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/net/can/bcm.c b/net/can/bcm.c index ac5e5e34fee3..8073fa14e143 100644 --- a/net/can

[PATCH 07/39] ipv{4,6}/ping: simplify proc file creation

2018-04-19 Thread Christoph Hellwig
Remove the pointless ping_seq_afinfo indirection and make the code look like most other protocols. Signed-off-by: Christoph Hellwig --- include/net/ping.h | 11 -- net/ipv4/ping.c| 50 +- net/ipv6/ping.c| 35

[PATCH 33/39] atm: simplify procfs code

2018-04-19 Thread Christoph Hellwig
Use remove_proc_subtree to remove the whole subtree on cleanup, and unwind the registration loop into individual calls. Switch to use proc_create_seq where applicable. Signed-off-by: Christoph Hellwig --- net/atm/proc.c | 65 ++ 1 file changed, 7

[PATCH 04/39] proc: introduce proc_create_single{,_data}

2018-04-19 Thread Christoph Hellwig
Variants of proc_create{,_data} that directly take a seq_file show callback and drastically reduces the boilerplate code in the callers. All trivial callers converted over. Signed-off-by: Christoph Hellwig --- arch/arm/kernel/dma.c | 14 +--- arch/arm/kernel

[PATCH 02/39] proc: introduce proc_create_seq{,_data}

2018-04-19 Thread Christoph Hellwig
Variants of proc_create{,_data} that directly take a struct seq_operations argument and drastically reduces the boilerplate code in the callers. All trivial callers converted over. Signed-off-by: Christoph Hellwig --- arch/ia64/hp/common/sba_iommu.c | 15 +- arch/ia64/kernel/perfmon.c

[PATCH 31/39] netfilter/x_tables: switch to proc_create_seq_private

2018-04-19 Thread Christoph Hellwig
And remove proc boilerplate code. Signed-off-by: Christoph Hellwig --- net/netfilter/x_tables.c | 42 ++-- 1 file changed, 6 insertions(+), 36 deletions(-) diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c index 344dd01a5027..0e314f95a4a3

[PATCH 34/39] atm: switch to proc_create_seq_private

2018-04-19 Thread Christoph Hellwig
And remove proc boilerplate code. Signed-off-by: Christoph Hellwig --- net/atm/proc.c | 72 +- 1 file changed, 13 insertions(+), 59 deletions(-) diff --git a/net/atm/proc.c b/net/atm/proc.c index f272b0f59d82..0b0495a41bbe 100644 --- a/net/atm

[PATCH 18/39] megaraid: simplify procfs code

2018-04-19 Thread Christoph Hellwig
Use remove_proc_subtree to remove the whole subtree on cleanup, and unwind the registration loop into individual calls. Switch to use proc_create_single. Signed-off-by: Christoph Hellwig --- drivers/scsi/megaraid.c | 140 +++- drivers/scsi/megaraid.h | 12

[PATCH 17/39] sgi-gru: simplify procfs code

2018-04-19 Thread Christoph Hellwig
Use remove_proc_subtree to remove the whole subtree on cleanup, and unwind the registration loop into individual calls. Switch to use proc_create_seq where applicable. Signed-off-by: Christoph Hellwig --- drivers/misc/sgi-gru/gruprocfs.c | 81 ++-- 1 file changed

[PATCH 37/39] ide: remove ide_driver_proc_write

2018-04-19 Thread Christoph Hellwig
The driver proc file hasn't been writeable for a long time, so this is just dead code. Signed-off-by: Christoph Hellwig --- drivers/ide/ide-proc.c | 46 -- 1 file changed, 46 deletions(-) diff --git a/drivers/ide/ide-proc.c b/drivers/ide/ide-proc.c

[PATCH 25/39] drbd: switch to proc_create_single

2018-04-19 Thread Christoph Hellwig
And stop messing with try_module_get on THIS_MODULE, which doesn't make any sense here. Signed-off-by: Christoph Hellwig --- drivers/block/drbd/drbd_int.h | 2 +- drivers/block/drbd/drbd_main.c | 3 ++- drivers/block/drbd/drbd_proc.c | 34 +- 3 files ch

[PATCH 28/39] hostap: switch to proc_create_{seq,single}_data

2018-04-19 Thread Christoph Hellwig
And use proc private data directly instead of doing a detour through seq->private. Signed-off-by: Christoph Hellwig --- .../net/wireless/intersil/hostap/hostap_ap.c | 70 ++--- .../net/wireless/intersil/hostap/hostap_hw.c | 17 +-- .../wireless/intersil/hostap/hostap_proc.c|

[PATCH 36/39] proc: don't detour through seq->private to get the inode

2018-04-19 Thread Christoph Hellwig
Signed-off-by: Christoph Hellwig --- fs/proc/array.c | 18 -- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/fs/proc/array.c b/fs/proc/array.c index ae2c807fd719..b34796b562ef 100644 --- a/fs/proc/array.c +++ b/fs/proc/array.c @@ -677,7 +677,7 @@ get_children_pid

[PATCH 13/39] proc: introduce proc_create_net{,_data}

2018-04-19 Thread Christoph Hellwig
Variants of proc_create{,_data} that directly take a struct seq_operations and deal with network namespaces in ->open and ->release. All callers of proc_create + seq_open_net converted over, and seq_{open,release}_net are removed entirely. Signed-off-by: Christoph Hellwig --- drivers/n

[PATCH 19/39] sg: simplify procfs code

2018-04-19 Thread Christoph Hellwig
Use remove_proc_subtree to remove the whole subtree on cleanup, and unwind the registration loop into individual calls. Switch to use proc_create_seq where applicable. Signed-off-by: Christoph Hellwig --- drivers/scsi/sg.c | 124 +- 1 file changed

[PATCH 21/39] ext4: simplify procfs code

2018-04-19 Thread Christoph Hellwig
Use remove_proc_subtree to remove the whole subtree on cleanup, and unwind the registration loop into individual calls. Switch to use proc_create_seq where applicable. Signed-off-by: Christoph Hellwig --- fs/ext4/ext4.h| 2 +- fs/ext4/mballoc.c | 29 fs/ext4

[PATCH 39/39] tty: replace ->proc_fops with ->proc_show

2018-04-19 Thread Christoph Hellwig
Just set up the show callback in the tty_operations, and use proc_create_single_data to create the file without additional boilerplace code. Signed-off-by: Christoph Hellwig --- arch/ia64/hp/sim/simserial.c| 15 +-- arch/xtensa/platforms/iss/console.c | 15

[PATCH 38/39] ide: replace ->proc_fops with ->proc_show

2018-04-19 Thread Christoph Hellwig
Just set up the show callback in the tty_operations, and use proc_create_single_data to create the file without additional boilerplace code. Signed-off-by: Christoph Hellwig --- drivers/ide/ide-cd.c | 15 +--- drivers/ide/ide-disk_proc.c | 62 ++-- drivers/ide/ide

[PATCH 12/39] net: move seq_file_single_net to

2018-04-19 Thread Christoph Hellwig
This helper deals with single_{open,release}_net internals and thus belongs here. Signed-off-by: Christoph Hellwig --- include/linux/seq_file_net.h | 13 + include/net/ip_vs.h | 12 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/include/linux

[PATCH 30/39] netfilter/xt_hashlimit: switch to proc_create_{seq, single}_data

2018-04-19 Thread Christoph Hellwig
And use proc private data directly instead of doing a detour through seq->private. Signed-off-by: Christoph Hellwig --- net/netfilter/xt_hashlimit.c | 92 +++- 1 file changed, 18 insertions(+), 74 deletions(-) diff --git a/net/netfilter/xt_hashlimit.c b/

[PATCH 26/39] rtc/proc: switch to proc_create_single_data

2018-04-19 Thread Christoph Hellwig
And stop trying to get a reference on the submodule, procfs code deals with release after and unloaded module and thus removed proc entry. Signed-off-by: Christoph Hellwig --- drivers/rtc/rtc-proc.c | 33 ++--- 1 file changed, 2 insertions(+), 31 deletions(-) diff

Re: simplify procfs code for seq_file instances

2018-04-24 Thread Christoph Hellwig
On Thu, Apr 19, 2018 at 09:57:50PM +0300, Alexey Dobriyan wrote: > > git://git.infradead.org/users/hch/misc.git proc_create > > > I want to ask if it is time to start using poorman function overloading > with _b_c_e(). There are millions of allocation functions for example, > all slightly dif

Re: [PATCH 26/39] rtc/proc: switch to proc_create_single_data

2018-04-24 Thread Christoph Hellwig
On Thu, Apr 19, 2018 at 03:10:27PM +0200, Alexandre Belloni wrote: > On 19/04/2018 14:41:27+0200, Christoph Hellwig wrote: > > And stop trying to get a reference on the submodule, procfs code deals > > with release after and unloaded module and thus removed proc entry. > > &g

Re: [PATCH 16/39] ipmi: simplify procfs code

2018-04-24 Thread Christoph Hellwig
On Thu, Apr 19, 2018 at 10:29:29AM -0500, Corey Minyard wrote: > On 04/19/2018 07:41 AM, Christoph Hellwig wrote: >> Use remove_proc_subtree to remove the whole subtree on cleanup instead >> of a hand rolled list of proc entries, unwind the registration loop into >> individ

Re: [PATCH 03/39] proc: introduce proc_create_seq_private

2018-04-24 Thread Christoph Hellwig
On Thu, Apr 19, 2018 at 05:18:18PM +0300, Dan Carpenter wrote: > > -static const struct file_operations cio_ignore_proc_fops = { > > - .open= cio_ignore_proc_open, > > - .read= seq_read, > > - .llseek = seq_lseek, > > - .release = seq_release_private, > > - .write = cio_ignore_

Re: [PATCH 03/39] proc: introduce proc_create_seq_private

2018-04-24 Thread Christoph Hellwig
On Thu, Apr 19, 2018 at 09:50:27PM +0300, Alexey Dobriyan wrote: > On Thu, Apr 19, 2018 at 02:41:04PM +0200, Christoph Hellwig wrote: > > Variant of proc_create_data that directly take a struct seq_operations > > > --- a/fs/proc/internal.h > > +++ b/fs/proc/internal.h >

Re: [PATCH 02/39] proc: introduce proc_create_seq{,_data}

2018-04-24 Thread Christoph Hellwig
On Thu, Apr 19, 2018 at 09:41:06PM +0300, Alexey Dobriyan wrote: > Should be oopsable. > Once proc_create_data() returns, entry is live, ->open can be called. Ok, switching to opencoding proc_create_data instead. ___ devel mailing list de...@linuxdriverp

Re: simplify procfs code for seq_file instances

2018-04-24 Thread Christoph Hellwig
On Tue, Apr 24, 2018 at 08:19:16AM -0700, Andrew Morton wrote: > > > I want to ask if it is time to start using poorman function overloading > > > with _b_c_e(). There are millions of allocation functions for example, > > > all slightly difference, and people will add more. Seeing /proc interfaces

[PATCH 01/40] net/can: single_open_net needs to be paired with single_release_net

2018-04-25 Thread Christoph Hellwig
Otherwise we will leak a reference to the network namespace. Signed-off-by: Christoph Hellwig --- net/can/bcm.c | 2 +- net/can/proc.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/net/can/bcm.c b/net/can/bcm.c index ac5e5e34fee3..8073fa14e143 100644 --- a/net/can

[PATCH 03/40] proc: add a proc_create_reg helper

2018-04-25 Thread Christoph Hellwig
Common code for creating a regular file. Factor out of proc_create_data, to be reused by other functions soon. Signed-off-by: Christoph Hellwig --- fs/proc/generic.c | 44 +--- fs/proc/internal.h | 2 ++ 2 files changed, 27 insertions(+), 19 deletions

[PATCH 02/40] proc: simplify proc_register calling conventions

2018-04-25 Thread Christoph Hellwig
Return registered entry on success, return NULL on failure and free the passed in entry. Also expose it in internal.h as we'll start using it in proc_net.c soon. Signed-off-by: Christoph Hellwig --- fs/proc/generic.c | 44 ++-- fs/proc/internal.h

<    1   2   3   4   5   >