Messages in this thread | | | Date | Mon, 21 Dec 2015 23:46:15 +0000 | From | Al Viro <> | Subject | [RFC] free_pages stuff |
| |
FWIW, I'd done a proof-of-concept patch series converting the things to * free_page() and free_pages() taking the address to free as a pointer * get_zeroed_page() returning a pointer * get_free_page()/get_free_pages() added, both returning a pointer * __get_dma_pages() replaced with get_dma_page() (again, returns a pointer)
Result is in git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.pages
The first 3 commits in there are flagday ones; doing them from scratch took about 4 hours total. The rest isn't system-wide (well, after introduction of get_free_page() there's a bulk replacement of something *p = (something *)__get_free_page(...); with something *p = get_free_page(...); but all chunks of that are independent - it can be split by subsystem, etc.) and would go into individual subsystem trees at leisure.
83 commits so far, 568 files changed, 1956 insertions(+), 2202 deletions(-) Total: 70 casts added, 1408 removed. All __get_free_page() calls in the tree converted; a few __get_free_pages() ones remain (6, AFAICS).
This was mostly a proof-of-concept thing - fixes for bogosities caught in process will, of course, be cherry-picked and sent to relevant trees, but the main goal was to find out how much boilerplating is there due to signatures of free_page, __get_free_page and friends (see above - more than a thousand casts, with usual effect on safety, etc.) and how painful would the series be (several hours to do the flagday part from scratch, not particularly hard to do followup cleanups; most of those cleanups will be trivial to rebase)
IMO the results look interesting. It's obviously too late in this cycle (and I used the mainline circa last Thursday as the starting point), but I could redo the flagday ones easily at any point - for example, overnight after -rc1. I'm not sure what's the best merge strategy here - I could put these 3 into a never-rebased branch, include it into for-next and ask the folks to pull it into their trees before adding followups. Alternatively, we could put these 3 into mainline right after -rc1 (or even into it, if you give me several hours of warning along the lines of "I'm done merging subtrees into -rc1 now").
In any case, decision whether to do that thing at all belongs to you - it's a flagday change in several functions used all over the tree and whichever way we do it, I need an explicit ACK from you on the change in principle. If you consider that change too disruptive, please say so. I'm not asking to ACK the specific patch series, just the possibility of this API change.
Please, take a look at that branch and comment. I've taken that about as far as I can without an ACK or NAK from you...
Shortlog: Al Viro (83): switch free_page() from unsigned long to const void * switch free_pages() from unsigned long to const void * switch get_zeroed_page() to returning void * kill unused {get,free}_user_page() switch copy_mount_options to storing void * instead of unsigned long drivers/net/wireless/libertas/debugfs.c: get rid of pointless casts drivers/net/wireless/mwifiex/debugfs.c: get rid of pointless casts affs_evict_inode(): get rid of pointless casts configfs_follow_link(): get rid of pointless casts kernfs_iop_follow_link(): get rid of pointless casts sound/oss/vidc: keep dma_buf[] as pointers drivers/tty: get rid of pointless casts rds: keep pointers in ->m_page_addrs[] proc_dev_atm_read(): get rid of pointless casts qib get_map_page(): get rid of pointless casts user_namespace: get rid of pointless casts ftrace: get rid of pointless casts sysctl: get rid of pointless casts xenstored_local_init(): get rid of pointless casts staging/rdma: get rid of pointless casts c6x: remove unused macros [davinci] ccdc_update_raw_params() frees the wrong thing fd_dma_mem_free(): pass address as void * instead of unsigned long ppc: keep ->hpt_virt as a pointer dma_4u_alloc_coherent(): don't mix virtual and physical addresses dma_4v_alloc_coherent(): don't mix virtual and physical addresses new helper: get_dma_pages() make fd_dma_mem_alloc/nodma_mem_alloc return a pointer switch the remaining users of __get_dma_pages() to get_dma_pages() sparc: get rid of pointless casts efficeon: get rid of pointless casts lguest: get rid of pointless casts drivers/pci: get rid of pointless casts drivers/s390: ger rid of pointless casts s390 kvm: get rid of pointless casts pcibios: get rid of pointless casts ste_dma40: get rid of pointless casts usb_mon: get rid of pointless casts gnttab_end_foreign_access(): switch the last argument to void * nios2: dma_free_coherent(): get rid of pointless casts hsi: get rid of pointless casts simserial: get rid of pointless casts arm64 vdso: get rid of pointless casts cris free_init_page(): switch to __free_page() arm: switch kvm_arm_hyp_stack_page to void * frv consistent_alloc(): switch page to void * ia64: uncached_add_chunk(): switch to __free_pages() jfs_readdir(): make dirent_buf a pointer get rid of casts in alloc_exact stuff s390 cmm: get rid of pointless casts microblaze consistent_alloc(): get rid of pointless casts devm_{get_}free_pages(): switch to pointers cavium: (partially) get rid of cargo-culting in allocator um: store stacks as pointers sh: get rid of pointless casts amd_gart_64: get rid of pointless casts iwlegacy: get rid of pointless casts iwlwifi: get rid of pointless casts add pointer-returning variants of __get_free_pages/__get_free_page switch obvious cases to get_free_pages() switch obvious cases to get_free_page() m68k: switch pte_alloc_one_kernel() to get_free_page() switch kvmppc_core_vcpu_create_pr() to get_free_page() drivers/video/fbdev: switch to get_free_pages() um: switch to get_free_page() switch xen_get_swiotlb_free_pages() to returning a pointer mn10300 dma_alloc_coherent(): switch to get_free_pages() switch ps3_dma_map() and ps3_dma_region_ops->map() instances to physical address ps3_alloc_coherent(): get rid of pointless casts s390_dma_alloc(): page_to_phys() result is always a multiple of PAGE_SIZE s390_dma_alloc(): use page_address() [powerpc] switch cmm_page_array->pages[] to pointers niu.c: get rid of pointless casts [s390] switch pcpu_alloc_lowcore() to get_free_page() kill __get_free_page() [mips, s390, score] turn empty_zero_page into pointer sparc: switch to get_free_pages() x86: switch to get_free_pages() s390: turn suspend_zero_pages into a pointer [sun3] try to sort dvma types out sba_iommu: get rid of pointless casts media/platform/omap: get rid of pointless casts nios2: get rid of pointless casts
Diffstat: arch/alpha/include/asm/agp.h | 4 +- arch/alpha/include/asm/pgalloc.h | 10 +-- arch/alpha/kernel/pci-noop.c | 4 +- arch/alpha/kernel/pci_iommu.c | 6 +- arch/alpha/kernel/srm_env.c | 8 +- arch/alpha/mm/init.c | 2 +- arch/arc/include/asm/page.h | 3 - arch/arc/include/asm/pgalloc.h | 12 +-- arch/arc/kernel/setup.c | 4 +- arch/arc/kernel/troubleshoot.c | 8 +- arch/arm/include/asm/kvm_host.h | 4 +- arch/arm/include/asm/page-nommu.h | 3 - arch/arm/include/asm/pgalloc.h | 6 +- arch/arm/include/asm/tlb.h | 6 +- arch/arm/include/asm/xen/page.h | 2 +- arch/arm/kvm/arm.c | 11 +-- arch/arm/kvm/mmu.c | 16 ++-- arch/arm/mm/pgd.c | 4 +- arch/arm/xen/mm.c | 4 +- arch/arm64/include/asm/kvm_host.h | 2 +- arch/arm64/include/asm/pgalloc.h | 12 +-- arch/arm64/kernel/vdso.c | 11 ++- arch/arm64/mm/mmu.c | 2 +- arch/arm64/mm/pgd.c | 4 +- arch/blackfin/include/asm/mmu_context.h | 6 +- arch/blackfin/kernel/dma-mapping.c | 2 +- arch/c6x/include/asm/processor.h | 4 - arch/cris/arch-v32/drivers/pci/dma.c | 4 +- arch/cris/include/asm/pgalloc.h | 6 +- arch/cris/mm/init.c | 7 +- arch/frv/include/asm/page.h | 3 - arch/frv/include/asm/pgalloc.h | 2 +- arch/frv/mm/dma-alloc.c | 7 +- arch/frv/mm/pgalloc.c | 2 +- arch/h8300/kernel/dma.c | 4 +- arch/hexagon/include/asm/pgalloc.h | 8 +- arch/ia64/hp/common/sba_iommu.c | 12 ++- arch/ia64/hp/sim/simserial.c | 7 +- arch/ia64/include/asm/agp.h | 4 +- arch/ia64/include/asm/thread_info.h | 2 +- arch/ia64/include/asm/tlb.h | 6 +- arch/ia64/kernel/mca.c | 3 +- arch/ia64/kernel/uncached.c | 2 +- arch/ia64/sn/pci/pci_dma.c | 6 +- arch/ia64/sn/pci/tioca_provider.c | 2 +- arch/m32r/include/asm/pgalloc.h | 8 +- arch/m68k/include/asm/dvma.h | 21 ++---- arch/m68k/include/asm/floppy.h | 8 +- arch/m68k/include/asm/mcf_pgalloc.h | 12 +-- arch/m68k/include/asm/motorola_pgalloc.h | 4 +- arch/m68k/include/asm/page_mm.h | 3 - arch/m68k/include/asm/page_no.h | 3 - arch/m68k/include/asm/sun3_pgalloc.h | 10 +-- arch/m68k/kernel/dma.c | 4 +- arch/m68k/mm/memory.c | 2 +- arch/m68k/sun3/dvma.c | 31 ++++---- arch/m68k/sun3/sun3dvma.c | 48 ++++++------ arch/m68k/sun3x/dvma.c | 15 ++-- arch/metag/include/asm/pgalloc.h | 6 +- arch/microblaze/include/asm/pgalloc.h | 6 +- arch/microblaze/kernel/dma.c | 2 +- arch/microblaze/mm/consistent.c | 14 ++-- arch/microblaze/mm/pgtable.c | 2 +- arch/mips/include/asm/mach-generic/floppy.h | 10 +-- arch/mips/include/asm/mach-jazz/floppy.h | 14 ++-- arch/mips/include/asm/pgalloc.h | 12 +-- arch/mips/include/asm/pgtable.h | 4 +- arch/mips/jazz/jazzdma.c | 3 +- arch/mips/mm/dma-default.c | 4 +- arch/mips/mm/init.c | 7 +- arch/mn10300/include/asm/pgalloc.h | 2 +- arch/mn10300/mm/dma-alloc.c | 19 +++-- arch/mn10300/mm/pgtable.c | 2 +- arch/nios2/include/asm/pgalloc.h | 6 +- arch/nios2/mm/dma-mapping.c | 6 +- arch/nios2/mm/init.c | 8 +- arch/nios2/mm/pgtable.c | 2 +- arch/openrisc/include/asm/page.h | 3 - arch/openrisc/include/asm/pgalloc.h | 6 +- arch/openrisc/mm/ioremap.c | 2 +- arch/parisc/include/asm/agp.h | 4 +- arch/parisc/include/asm/floppy.h | 19 ++--- arch/parisc/include/asm/pgalloc.h | 14 ++-- arch/parisc/kernel/pci-dma.c | 9 +-- arch/powerpc/include/asm/agp.h | 4 +- arch/powerpc/include/asm/kvm_host.h | 2 +- arch/powerpc/include/asm/pgalloc-32.h | 4 +- arch/powerpc/include/asm/pgalloc-64.h | 6 +- arch/powerpc/include/asm/ps3.h | 4 +- arch/powerpc/kernel/dma.c | 2 +- arch/powerpc/kernel/fadump.c | 2 +- arch/powerpc/kernel/iommu.c | 6 +- arch/powerpc/kvm/book3s_64_mmu_hv.c | 15 ++-- arch/powerpc/kvm/book3s_pr.c | 8 +- arch/powerpc/kvm/booke.c | 2 +- arch/powerpc/kvm/e500.c | 4 +- arch/powerpc/kvm/e500mc.c | 4 +- arch/powerpc/mm/hugetlbpage.c | 4 +- arch/powerpc/mm/init_64.c | 3 +- arch/powerpc/mm/pgtable_32.c | 6 +- arch/powerpc/mm/subpage-prot.c | 6 +- arch/powerpc/platforms/cell/spufs/coredump.c | 4 +- arch/powerpc/platforms/cell/spufs/inode.c | 4 +- arch/powerpc/platforms/powernv/pci-ioda.c | 2 +- arch/powerpc/platforms/ps3/mm.c | 34 +++------ arch/powerpc/platforms/ps3/system-bus.c | 14 ++-- arch/powerpc/platforms/pseries/cmm.c | 38 +++++----- arch/powerpc/platforms/pseries/iommu.c | 4 +- arch/powerpc/platforms/pseries/pseries_energy.c | 4 +- arch/s390/crypto/aes_s390.c | 6 +- arch/s390/crypto/des_s390.c | 4 +- arch/s390/crypto/prng.c | 4 +- arch/s390/hypfs/hypfs_diag.c | 4 +- arch/s390/hypfs/hypfs_sprp.c | 6 +- arch/s390/include/asm/idals.h | 8 +- arch/s390/include/asm/pgtable.h | 6 +- arch/s390/kernel/entry.h | 2 +- arch/s390/kernel/ipl.c | 8 +- arch/s390/kernel/kprobes.c | 4 +- arch/s390/kernel/perf_cpum_sf.c | 6 +- arch/s390/kernel/setup.c | 2 +- arch/s390/kernel/smp.c | 25 +++---- arch/s390/kernel/suspend.c | 6 +- arch/s390/kernel/sysinfo.c | 4 +- arch/s390/kernel/time.c | 2 +- arch/s390/kernel/topology.c | 2 +- arch/s390/kernel/vdso.c | 16 ++-- arch/s390/kvm/kvm-s390.c | 16 ++-- arch/s390/kvm/priv.c | 8 +- arch/s390/mm/cmm.c | 17 ++--- arch/s390/mm/init.c | 7 +- arch/s390/mm/maccess.c | 8 +- arch/s390/mm/pgtable.c | 9 +-- arch/s390/mm/vmem.c | 2 +- arch/s390/oprofile/hwsampler.c | 10 +-- arch/s390/pci/pci_clp.c | 4 +- arch/s390/pci/pci_dma.c | 14 ++-- arch/score/include/asm/pgalloc.h | 8 +- arch/score/include/asm/pgtable.h | 6 +- arch/score/mm/init.c | 6 +- arch/sh/boards/mach-hp6xx/pm.c | 5 +- arch/sh/mm/consistent.c | 4 +- arch/sparc/include/asm/agp.h | 4 +- arch/sparc/include/asm/dma.h | 2 +- arch/sparc/include/asm/floppy_32.h | 4 +- arch/sparc/include/asm/iommu_64.h | 2 +- arch/sparc/kernel/iommu.c | 17 ++--- arch/sparc/kernel/ioport.c | 12 +-- arch/sparc/kernel/irq_64.c | 8 +- arch/sparc/kernel/ldc.c | 11 ++- arch/sparc/kernel/pci_fire.c | 18 ++--- arch/sparc/kernel/pci_sun4v.c | 31 ++++---- arch/sparc/kernel/traps_64.c | 3 +- arch/sparc/mm/init_64.c | 2 +- arch/sparc/mm/io-unit.c | 9 +-- arch/sparc/mm/iommu.c | 16 ++-- arch/tile/mm/elf.c | 4 +- arch/um/drivers/chan_user.c | 6 +- arch/um/drivers/chan_user.h | 2 +- arch/um/drivers/line.c | 8 +- arch/um/drivers/mconsole_kern.c | 2 +- arch/um/drivers/net_kern.c | 4 +- arch/um/drivers/ubd.h | 2 +- arch/um/drivers/ubd_kern.c | 2 +- arch/um/drivers/ubd_user.c | 4 +- arch/um/include/asm/pgalloc.h | 4 +- arch/um/include/shared/kern_util.h | 4 +- arch/um/include/shared/os.h | 6 +- arch/um/include/shared/skas/mm_id.h | 2 +- arch/um/include/shared/skas/skas.h | 2 +- arch/um/kernel/mem.c | 8 +- arch/um/kernel/process.c | 9 +-- arch/um/kernel/skas/mmu.c | 11 ++- arch/um/kernel/skas/process.c | 4 +- arch/um/os-Linux/aio.c | 2 +- arch/um/os-Linux/helper.c | 14 ++-- arch/um/os-Linux/sigio.c | 2 +- arch/um/os-Linux/skas/process.c | 19 +++-- arch/unicore32/include/asm/pgalloc.h | 4 +- arch/unicore32/mm/pgd.c | 6 +- arch/x86/include/asm/agp.h | 4 +- arch/x86/include/asm/floppy.h | 19 ++--- arch/x86/include/asm/pgalloc.h | 6 +- arch/x86/include/asm/xen/page-coherent.h | 4 +- arch/x86/include/asm/xen/page.h | 4 +- arch/x86/kernel/amd_gart_64.c | 6 +- arch/x86/kernel/cpu/perf_event_intel_pt.c | 2 +- arch/x86/kernel/ldt.c | 2 +- arch/x86/kernel/machine_kexec_32.c | 10 +-- arch/x86/kernel/machine_kexec_64.c | 6 +- arch/x86/kernel/pci-calgary_64.c | 8 +- arch/x86/kernel/pci-dma.c | 2 +- arch/x86/kernel/tce_64.c | 6 +- arch/x86/kvm/lapic.c | 2 +- arch/x86/kvm/mmu.c | 12 +-- arch/x86/kvm/vmx.c | 59 +++++++-------- arch/x86/kvm/x86.c | 4 +- arch/x86/mm/init.c | 2 +- arch/x86/mm/init_64.c | 2 +- arch/x86/mm/pageattr.c | 6 +- arch/x86/mm/pgtable.c | 16 ++-- arch/x86/pci/pcbios.c | 8 +- arch/x86/platform/efi/efi.c | 6 +- arch/x86/um/ldt.c | 17 ++--- arch/x86/xen/mmu.c | 4 +- arch/x86/xen/p2m.c | 4 +- arch/x86/xen/pmu.c | 4 +- arch/xtensa/include/asm/pgalloc.h | 8 +- arch/xtensa/kernel/pci-dma.c | 2 +- block/partitions/check.c | 6 +- crypto/blkcipher.c | 4 +- crypto/tcrypt.c | 10 +-- crypto/testmgr.c | 6 +- crypto/xor.c | 4 +- drivers/acpi/apei/ghes.c | 4 +- drivers/acpi/nvs.c | 4 +- drivers/atm/eni.c | 2 +- drivers/atm/lanai.c | 2 +- drivers/auxdisplay/cfag12864b.c | 4 +- drivers/base/devres.c | 10 +-- drivers/block/aoe/aoecmd.c | 2 +- drivers/block/cciss.c | 4 +- drivers/block/drbd/drbd_main.c | 8 +- drivers/block/floppy.c | 18 ++--- drivers/block/ps3vram.c | 7 +- drivers/block/xen-blkback/blkback.c | 4 +- drivers/block/xen-blkfront.c | 19 +++-- drivers/block/zram/zcomp.c | 4 +- drivers/char/agp/amd-k7-agp.c | 4 +- drivers/char/agp/ati-agp.c | 4 +- drivers/char/agp/efficeon-agp.c | 20 ++--- drivers/char/agp/hp-agp.c | 4 +- drivers/char/agp/sworks-agp.c | 4 +- drivers/char/agp/uninorth-agp.c | 6 +- drivers/char/mbcs.c | 20 ++--- drivers/char/mem.c | 8 +- drivers/char/pcmcia/synclink_cs.c | 2 +- drivers/char/tpm/tpm_ibmvtpm.c | 4 +- drivers/char/tpm/xen-tpmfront.c | 6 +- drivers/char/xilinx_hwicap/xilinx_hwicap.c | 16 ++-- drivers/char/xillybus/xillybus_core.c | 2 +- drivers/crypto/atmel-aes.c | 12 +-- drivers/crypto/atmel-tdes.c | 12 +-- drivers/crypto/nx/nx-842.c | 12 +-- drivers/crypto/omap-aes.c | 8 +- drivers/crypto/omap-des.c | 8 +- drivers/dma/nbpfaxi.c | 2 +- drivers/dma/sh/rcar-dmac.c | 2 +- drivers/dma/ste_dma40.c | 12 +-- drivers/extcon/extcon.c | 2 +- drivers/firewire/ohci.c | 6 +- drivers/firmware/dell_rbu.c | 15 ++-- drivers/gpu/drm/amd/amdkfd/kfd_events.c | 4 +- drivers/gpu/drm/via/via_dmablit.c | 5 +- drivers/hsi/clients/cmt_speech.c | 10 +-- drivers/hv/channel.c | 10 +-- drivers/hv/connection.c | 13 ++-- drivers/hv/hv.c | 6 +- drivers/ide/ide-proc.c | 8 +- drivers/infiniband/core/device.c | 2 +- drivers/infiniband/core/umem.c | 8 +- drivers/infiniband/core/umem_odp.c | 4 +- drivers/infiniband/hw/cxgb3/iwch_provider.c | 4 +- drivers/infiniband/hw/cxgb4/device.c | 5 +- drivers/infiniband/hw/cxgb4/mem.c | 4 +- drivers/infiniband/hw/mlx4/mr.c | 4 +- drivers/infiniband/hw/mlx5/mr.c | 2 +- drivers/infiniband/hw/mlx5/odp.c | 4 +- drivers/infiniband/hw/mthca/mthca_allocator.c | 4 +- drivers/infiniband/hw/mthca/mthca_provider.c | 4 +- drivers/infiniband/hw/qib/qib_dma.c | 2 +- drivers/infiniband/hw/qib/qib_qp.c | 6 +- drivers/infiniband/hw/usnic/usnic_uiom.c | 4 +- drivers/input/misc/xen-kbdfront.c | 8 +- drivers/iommu/amd_iommu.c | 18 ++--- drivers/iommu/amd_iommu_init.c | 37 ++++------ drivers/iommu/amd_iommu_v2.c | 6 +- drivers/iommu/dmar.c | 4 +- drivers/iommu/exynos-iommu.c | 10 +-- drivers/iommu/fsl_pamu.c | 2 +- drivers/iommu/intel-iommu.c | 2 +- drivers/iommu/intel-svm.c | 8 +- drivers/iommu/intel_irq_remapping.c | 2 +- drivers/iommu/msm_iommu.c | 15 ++-- drivers/iommu/rockchip-iommu.c | 4 +- drivers/irqchip/irq-gic-v3-its.c | 4 +- drivers/lguest/lg.h | 2 +- drivers/lguest/lguest_user.c | 2 +- drivers/lguest/page_tables.c | 12 +-- drivers/macintosh/rack-meter.c | 6 +- drivers/md/bcache/bset.c | 18 ++--- drivers/md/bcache/btree.c | 5 +- drivers/md/bcache/journal.c | 8 +- drivers/md/bcache/super.c | 6 +- drivers/md/dm-bufio.c | 5 +- drivers/media/pci/pt1/pt1.c | 6 +- drivers/media/pci/saa7134/saa7134-go7007.c | 8 +- drivers/media/pci/solo6x10/solo6x10-p2m.c | 10 +-- drivers/media/pci/ttpci/av7110_ca.c | 4 +- drivers/media/pci/zoran/zoran_driver.c | 4 +- drivers/media/platform/davinci/dm644x_ccdc.c | 7 +- drivers/media/platform/omap/omap_vout.c | 26 ++++--- drivers/media/platform/omap/omap_vout_vrfb.c | 6 +- drivers/media/platform/omap/omap_voutdef.h | 4 +- drivers/media/platform/omap/omap_voutlib.c | 15 ++-- drivers/media/platform/omap/omap_voutlib.h | 4 +- drivers/misc/cxl/context.c | 2 +- drivers/misc/cxl/native.c | 6 +- drivers/misc/cxl/pci.c | 4 +- drivers/misc/ibmasm/ibmasmfs.c | 4 +- drivers/misc/lkdtm.c | 16 ++-- drivers/misc/mic/card/mic_virtio.c | 4 +- drivers/misc/mic/host/mic_virtio.c | 16 ++-- drivers/misc/mic/scif/scif_rma.h | 4 +- drivers/misc/sgi-gru/grufile.c | 4 +- drivers/misc/sgi-xp/xpc_uv.c | 4 +- drivers/mmc/host/tmio_mmc_dma.c | 4 +- drivers/net/appletalk/ltpc.c | 12 ++- drivers/net/ethernet/amd/mvme147.c | 4 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 2 +- drivers/net/ethernet/cavium/liquidio/octeon_droq.c | 4 +- drivers/net/ethernet/cavium/liquidio/octeon_droq.h | 3 - drivers/net/ethernet/cavium/liquidio/octeon_main.h | 21 +----- drivers/net/ethernet/cirrus/cs89x0.c | 5 +- drivers/net/ethernet/i825xx/82596.c | 4 +- drivers/net/ethernet/i825xx/sun3_82586.c | 13 ++-- drivers/net/ethernet/ibm/ehea/ehea_main.c | 26 +++---- drivers/net/ethernet/ibm/ehea/ehea_qmr.c | 8 +- drivers/net/ethernet/ibm/ibmveth.c | 4 +- drivers/net/ethernet/seeq/sgiseeq.c | 2 +- drivers/net/ethernet/sfc/mcdi.c | 6 +- drivers/net/ethernet/sgi/ioc3-eth.c | 6 +- drivers/net/ethernet/sun/niu.c | 8 +- drivers/net/ethernet/tile/tilegx.c | 6 +- drivers/net/ethernet/toshiba/ps3_gelic_wireless.c | 24 +++--- drivers/net/irda/au1k_ir.c | 4 +- drivers/net/rionet.c | 4 +- drivers/net/usb/kaweth.c | 4 +- drivers/net/wan/z85230.c | 8 +- drivers/net/wireless/b43/debugfs.c | 8 +- drivers/net/wireless/b43legacy/debugfs.c | 8 +- drivers/net/wireless/iwlegacy/3945-mac.c | 2 +- drivers/net/wireless/iwlegacy/3945.c | 2 +- drivers/net/wireless/iwlegacy/common.c | 10 +-- drivers/net/wireless/iwlegacy/common.h | 6 +- drivers/net/wireless/iwlwifi/iwl-trans.h | 2 +- drivers/net/wireless/iwlwifi/pcie/tx.c | 2 +- drivers/net/wireless/libertas/debugfs.c | 85 +++++++++------------- drivers/net/wireless/mwifiex/debugfs.c | 78 ++++++++------------ drivers/net/wireless/ti/wlcore/main.c | 10 +-- drivers/net/xen-netfront.c | 10 +-- drivers/parisc/ccio-dma.c | 10 +-- drivers/parisc/ccio-rm-dma.c | 4 +- drivers/parisc/sba_iommu.c | 27 ++++--- drivers/pci/host/pci-tegra.c | 8 +- drivers/pci/host/pcie-designware.c | 6 +- drivers/pci/host/pcie-designware.h | 2 +- drivers/pci/host/pcie-rcar.c | 6 +- drivers/pci/host/pcie-xilinx.c | 8 +- drivers/pci/xen-pcifront.c | 7 +- drivers/platform/x86/dell-laptop.c | 6 +- drivers/power/power_supply_sysfs.c | 2 +- drivers/s390/block/dasd.c | 8 +- drivers/s390/block/dasd_diag.c | 2 +- drivers/s390/block/dasd_eckd.c | 10 +-- drivers/s390/block/dasd_eer.c | 2 +- drivers/s390/block/dasd_fba.c | 2 +- drivers/s390/block/scm_blk.c | 2 +- drivers/s390/block/scm_blk_cluster.c | 2 +- drivers/s390/block/xpram.c | 22 +++--- drivers/s390/char/diag_ftp.c | 2 +- drivers/s390/char/hmcdrv_cache.c | 4 +- drivers/s390/char/hmcdrv_ftp.c | 6 +- drivers/s390/char/sclp_async.c | 4 +- drivers/s390/char/sclp_cmd.c | 16 ++-- drivers/s390/char/sclp_cpi_sys.c | 2 +- drivers/s390/char/sclp_ctl.c | 2 +- drivers/s390/char/sclp_ftp.c | 8 +- drivers/s390/char/sclp_vt220.c | 2 +- drivers/s390/char/tty3270.c | 8 +- drivers/s390/char/vmcp.c | 7 +- drivers/s390/char/vmlogrdr.c | 2 +- drivers/s390/char/vmur.c | 8 +- drivers/s390/char/zcore.c | 6 +- drivers/s390/cio/chsc.c | 16 ++-- drivers/s390/cio/chsc_sch.c | 24 +++--- drivers/s390/cio/cmf.c | 6 +- drivers/s390/cio/qdio.h | 2 +- drivers/s390/cio/qdio_main.c | 2 +- drivers/s390/cio/qdio_setup.c | 18 ++--- drivers/s390/cio/qdio_thinint.c | 2 +- drivers/s390/cio/scm.c | 4 +- drivers/s390/crypto/zcrypt_api.c | 4 +- drivers/s390/crypto/zcrypt_msgtype6.c | 4 +- drivers/s390/crypto/zcrypt_pcixcc.c | 4 +- drivers/s390/net/qeth_core_main.c | 11 ++- drivers/s390/scsi/zfcp_aux.c | 2 +- drivers/scsi/cxlflash/main.c | 8 +- drivers/scsi/cxlflash/superpipe.c | 2 +- drivers/scsi/ibmvscsi/ibmvfc.c | 8 +- drivers/scsi/ibmvscsi/ibmvscsi.c | 4 +- drivers/scsi/ipr.c | 4 +- drivers/scsi/libiscsi.c | 5 +- drivers/scsi/lpfc/lpfc_init.c | 10 +-- drivers/scsi/megaraid/megaraid_sas_base.c | 6 +- drivers/scsi/megaraid/megaraid_sas_fusion.c | 8 +- drivers/scsi/mpt3sas/mpt3sas_base.c | 9 +-- drivers/scsi/ncr53c8xx.c | 2 +- drivers/scsi/scsi_devinfo.c | 4 +- drivers/scsi/scsi_proc.c | 8 +- drivers/scsi/sun3_scsi.c | 23 +++--- drivers/scsi/sym53c8xx_2/sym_hipd.h | 4 +- drivers/scsi/vmw_pvscsi.c | 8 +- drivers/scsi/xen-scsifront.c | 12 ++- drivers/sh/maple/maple.c | 5 +- drivers/spi/spi-ep93xx.c | 4 +- drivers/spi/spi-sh-msiof.c | 12 +-- drivers/staging/comedi/comedi_buf.c | 2 +- drivers/staging/lustre/lustre/llite/llite_lib.c | 4 +- drivers/staging/rdma/ehca/ehca_iverbs.h | 2 +- drivers/staging/rdma/ehca/ehca_mrmw.c | 4 +- drivers/staging/rdma/ehca/ipz_pt_fn.c | 6 +- drivers/staging/rdma/ehca/ipz_pt_fn.h | 2 +- drivers/staging/rdma/hfi1/dma.c | 2 +- drivers/staging/rdma/hfi1/qp.c | 6 +- drivers/staging/rdma/ipath/ipath_dma.c | 2 +- drivers/staging/rdma/ipath/ipath_qp.c | 6 +- drivers/staging/unisys/visorbus/visorchannel.c | 4 +- drivers/target/target_core_file.c | 4 +- drivers/tty/amiserial.c | 6 +- drivers/tty/cyclades.c | 8 +- drivers/tty/hvc/hvc_iucv.c | 4 +- drivers/tty/hvc/hvc_xen.c | 4 +- drivers/tty/hvc/hvcs.c | 6 +- drivers/tty/mxser.c | 8 +- drivers/tty/rocket.c | 8 +- drivers/tty/serial/68328serial.c | 4 +- drivers/tty/serial/crisv10.c | 6 +- drivers/tty/serial/men_z135_uart.c | 6 +- drivers/tty/serial/pch_uart.c | 6 +- drivers/tty/serial/serial_core.c | 6 +- drivers/tty/synclink.c | 2 +- drivers/tty/tty_port.c | 6 +- drivers/tty/vt/vc_screen.c | 8 +- drivers/usb/atm/cxacru.c | 16 ++-- drivers/usb/atm/speedtch.c | 4 +- drivers/usb/core/devices.c | 6 +- drivers/usb/core/devio.c | 4 +- drivers/usb/host/ohci-dbg.c | 2 +- drivers/usb/misc/rio500.c | 14 ++-- drivers/usb/mon/mon_bin.c | 13 ++-- drivers/usb/serial/usb_wwan.c | 6 +- drivers/uwb/hwa-rc.c | 6 +- drivers/video/fbdev/fb-puv3.c | 2 +- drivers/video/fbdev/grvga.c | 20 +++-- drivers/video/fbdev/ssd1307fb.c | 2 +- drivers/video/fbdev/vermilion/vermilion.c | 15 ++-- drivers/video/fbdev/vermilion/vermilion.h | 2 +- drivers/video/fbdev/xen-fbfront.c | 4 +- drivers/xen/events/events_base.c | 4 +- drivers/xen/events/events_fifo.c | 10 +-- drivers/xen/evtchn.c | 4 +- drivers/xen/grant-table.c | 12 +-- drivers/xen/swiotlb-xen.c | 6 +- drivers/xen/xen-scsiback.c | 6 +- drivers/xen/xenbus/xenbus_probe.c | 7 +- fs/affs/inode.c | 4 +- fs/afs/mntpt.c | 8 +- fs/bfs/inode.c | 2 +- fs/binfmt_misc.c | 4 +- fs/ceph/mds_client.c | 5 +- fs/compat.c | 9 +-- fs/configfs/file.c | 4 +- fs/configfs/symlink.c | 6 +- fs/ecryptfs/crypto.c | 2 +- fs/ext4/super.c | 2 +- fs/fuse/dir.c | 4 +- fs/fuse/file.c | 4 +- fs/hfs/mdb.c | 4 +- fs/internal.h | 2 +- fs/isofs/dir.c | 4 +- fs/jbd2/journal.c | 8 +- fs/jfs/jfs_dtree.c | 8 +- fs/jfs/jfs_logmgr.c | 2 +- fs/kernfs/symlink.c | 8 +- fs/libfs.c | 6 +- fs/namespace.c | 17 ++--- fs/nfs/namespace.c | 4 +- fs/nfs/nfs4namespace.c | 16 ++-- fs/nfs/super.c | 4 +- fs/nfsd/vfs.c | 4 +- fs/nilfs2/ioctl.c | 4 +- fs/ocfs2/dlm/dlmdebug.c | 4 +- fs/ocfs2/dlm/dlmdomain.c | 4 +- fs/ocfs2/dlm/dlmmaster.c | 4 +- fs/ocfs2/dlm/dlmrecovery.c | 4 +- fs/overlayfs/copy_up.c | 6 +- fs/proc/base.c | 20 ++--- fs/proc/vmcore.c | 6 +- fs/quota/dquot.c | 2 +- fs/select.c | 4 +- include/asm-generic/page.h | 3 - include/linux/device.h | 4 +- include/linux/gfp.h | 16 ++-- include/linux/quicklist.h | 2 +- include/linux/security.h | 2 +- include/xen/grant_table.h | 3 +- kernel/events/ring_buffer.c | 4 +- kernel/groups.c | 6 +- kernel/power/swap.c | 23 +++--- kernel/sysctl.c | 31 +++----- kernel/trace/ftrace.c | 8 +- kernel/trace/ring_buffer.c | 4 +- kernel/trace/trace_events.c | 26 +++---- kernel/trace/trace_events_filter.c | 4 +- kernel/trace/trace_events_trigger.c | 8 +- kernel/trace/trace_uprobe.c | 5 +- kernel/user_namespace.c | 11 +-- lib/percpu_ida.c | 4 +- lib/raid6/algos.c | 4 +- lib/scatterlist.c | 4 +- lib/swiotlb.c | 33 ++++----- mm/memory.c | 12 +-- mm/migrate.c | 4 +- mm/mincore.c | 4 +- mm/page_alloc.c | 45 ++++++------ mm/quicklist.c | 2 +- mm/slob.c | 2 +- mm/slub.c | 7 +- mm/sparse.c | 2 +- net/atm/mpoa_proc.c | 6 +- net/atm/proc.c | 6 +- net/core/dev.c | 2 +- net/core/neighbour.c | 5 +- net/dccp/proto.c | 16 ++-- net/decnet/dn_route.c | 3 +- net/ipv4/fib_semantics.c | 5 +- net/netfilter/nf_conntrack_core.c | 5 +- net/netfilter/nf_tables_api.c | 2 +- net/netlink/af_netlink.c | 6 +- net/packet/af_packet.c | 7 +- net/rds/cong.c | 10 +-- net/rds/ib_recv.c | 2 +- net/rds/iw_recv.c | 2 +- net/rds/message.c | 2 +- net/rds/rds.h | 4 +- net/rds/tcp_recv.c | 2 +- net/sched/sch_api.c | 5 +- net/sctp/protocol.c | 16 ++-- net/sctp/ssnmap.c | 7 +- net/sunrpc/backchannel_rqst.c | 4 +- net/sunrpc/xprtsock.c | 2 +- net/xfrm/xfrm_hash.c | 5 +- security/integrity/ima/ima_crypto.c | 6 +- security/selinux/hooks.c | 6 +- security/selinux/selinuxfs.c | 22 +++--- security/smack/smack_lsm.c | 2 +- sound/core/memalloc.c | 4 +- sound/drivers/dummy.c | 2 +- sound/oss/dmabuf.c | 4 +- sound/oss/msnd_pinnacle.c | 20 ++--- sound/oss/vidc.c | 2 +- sound/oss/vidc.h | 3 +- sound/pci/emu10k1/memory.c | 2 +- sound/usb/usx2y/usb_stream.c | 9 +-- tools/virtio/linux/kernel.h | 4 +- virt/kvm/coalesced_mmio.c | 2 +- virt/kvm/kvm_main.c | 4 +- 568 files changed, 1956 insertions(+), 2202 deletions(-)
| |