linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] User API Disintegrate: Preparatory patches
@ 2012-10-02 18:36 David Howells
  2012-10-04 17:12 ` Geert Uytterhoeven
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: David Howells @ 2012-10-02 18:36 UTC (permalink / raw)
  To: torvalds
  Cc: dhowells, arnd, hpa, alan, fengguang.wu, linux-arch, linux-kernel


Hi Linus,

Could you pull this tree please?  

The patches herein prepare for the extraction of the Userspace API bits from
the various header files named in the Kbuild files.

[IMPORTANT NOTE!  These patches may need regenerating if the header files
 change too much.  This doesn't normally take very long to do as the
 disintegration procedure is almost entirely scripted.]

New subdirectories are created under either include/uapi/ or
arch/x/include/uapi/ that correspond to the subdirectory containing that file
under include/ or arch/x/include/.

The new subdirs under the uapi/ directory are populated with Kbuild files that
mostly do nothing at this time.  Further patches will disintegrate the headers
in each original directory and fill in the Kbuild files as they do it.

These patches also:

 (1) fix up #inclusions of "foo.h" rather than <foo.h>.

 (2) Remove some redundant #includes from the DRM code.

 (3) Make the kernel build infrastructure handle Kbuild files both in the old
     places and the new UAPI place that both specify headers to be exported.

 (4) Fix some kernel tools that #include kernel headers during their build.

I have compile tested this with allyesconfig against x86_64, allmodconfig
against i386 and a scattering of additional defconfigs of other arches.

Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Dave Jones <davej@redhat.com>
Acked-by: H. Peter Anvin <hpa@zytor.com>
---
The following changes since commit 974a847e00cf3ff1695e62b276892137893706ab:

  drivers: bus: omap_l3: fixup merge conflict resolution (2012-10-01 19:39:48 -0700)

are available in the git repository at:

  git://git.infradead.org/users/dhowells/linux-headers.git tags/uapi-prep-20121002

for you to fetch changes up to 10b63956fce7f369cc37fd4d994f09bd5203efe4:

  UAPI: Plumb the UAPI Kbuilds into the user header installation and checking (2012-10-02 18:01:57 +0100)

----------------------------------------------------------------
Prepared for main script

----------------------------------------------------------------
David Howells (13):
      UAPI: Refer to the DRM UAPI headers with <...> and from certain headers only
      UAPI: (Scripted) Remove redundant DRM UAPI header #inclusions from drivers/gpu/.
      UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/
      UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
      UAPI: Partition the header include path sets and add uapi/ header directories
      UAPI: (Scripted) Set up UAPI Kbuild files
      UAPI: x86: Fix the test_get_len tool
      UAPI: x86: Fix insn_sanity build failure after UAPI split
      UAPI: Set up uapi/asm/Kbuild.asm
      UAPI: Move linux/version.h
      UAPI: Remove the objhdr-y export list
      UAPI: x86: Differentiate the generated UAPI and internal headers
      UAPI: Plumb the UAPI Kbuilds into the user header installation and checking

 Documentation/kbuild/makefiles.txt               |  8 ++--
 Makefile                                         | 43 ++++++++++++--------
 arch/alpha/include/uapi/asm/Kbuild               |  3 ++
 arch/arm/include/asm/page.h                      |  2 +-
 arch/arm/include/asm/pgtable.h                   |  2 +-
 arch/arm/include/asm/vfpmacros.h                 |  2 +-
 arch/arm/include/uapi/asm/Kbuild                 |  3 ++
 arch/arm64/include/uapi/asm/Kbuild               |  3 ++
 arch/avr32/include/uapi/asm/Kbuild               |  3 ++
 arch/blackfin/include/uapi/asm/Kbuild            |  3 ++
 arch/c6x/include/uapi/asm/Kbuild                 |  3 ++
 arch/cris/Makefile                               |  4 +-
 arch/cris/include/arch-v10/arch/sv_addr_ag.h     |  2 +-
 arch/cris/include/arch-v10/arch/svinto.h         |  2 +-
 arch/cris/include/arch-v32/arch/dma.h            |  2 +-
 arch/cris/include/arch-v32/arch/hwregs/dma.h     |  2 +-
 arch/cris/include/uapi/arch-v10/arch/Kbuild      |  1 +
 arch/cris/include/uapi/arch-v32/arch/Kbuild      |  1 +
 arch/cris/include/uapi/asm/Kbuild                |  5 +++
 arch/frv/include/uapi/asm/Kbuild                 |  3 ++
 arch/h8300/include/uapi/asm/Kbuild               |  3 ++
 arch/hexagon/include/uapi/asm/Kbuild             |  3 ++
 arch/ia64/include/uapi/asm/Kbuild                |  3 ++
 arch/m32r/include/uapi/asm/Kbuild                |  3 ++
 arch/m68k/include/asm/cacheflush.h               |  4 +-
 arch/m68k/include/asm/io.h                       |  4 +-
 arch/m68k/include/asm/m68360.h                   |  8 ++--
 arch/m68k/include/asm/m68360_enet.h              |  2 +-
 arch/m68k/include/asm/page.h                     |  4 +-
 arch/m68k/include/asm/pgtable.h                  |  4 +-
 arch/m68k/include/asm/q40_master.h               |  2 +-
 arch/m68k/include/asm/uaccess.h                  |  4 +-
 arch/m68k/include/uapi/asm/Kbuild                |  3 ++
 arch/microblaze/include/asm/mmu_context.h        |  2 +-
 arch/microblaze/include/uapi/asm/Kbuild          |  3 ++
 arch/mips/include/asm/mach-bcm63xx/bcm63xx_io.h  |  2 +-
 arch/mips/include/asm/mach-pnx833x/gpio.h        |  2 +-
 arch/mips/include/asm/octeon/cvmx-asm.h          |  2 +-
 arch/mips/include/asm/octeon/cvmx-cmd-queue.h    |  2 +-
 arch/mips/include/asm/octeon/cvmx-fpa.h          |  4 +-
 arch/mips/include/asm/octeon/cvmx-helper-board.h |  2 +-
 arch/mips/include/asm/octeon/cvmx-helper.h       | 20 ++++-----
 arch/mips/include/asm/octeon/cvmx-mdio.h         |  2 +-
 arch/mips/include/asm/octeon/cvmx-pip.h          |  6 +--
 arch/mips/include/asm/octeon/cvmx-pko.h          |  8 ++--
 arch/mips/include/asm/octeon/cvmx-pow.h          |  4 +-
 arch/mips/include/asm/octeon/cvmx-spi.h          |  2 +-
 arch/mips/include/asm/octeon/cvmx-spinlock.h     |  2 +-
 arch/mips/include/asm/octeon/cvmx-wqe.h          |  2 +-
 arch/mips/include/asm/octeon/cvmx.h              | 36 ++++++++--------
 arch/mips/include/asm/octeon/octeon-model.h      |  2 +-
 arch/mips/include/asm/octeon/octeon.h            |  2 +-
 arch/mips/include/asm/sibyte/bcm1480_int.h       |  2 +-
 arch/mips/include/asm/sibyte/bcm1480_l2c.h       |  2 +-
 arch/mips/include/asm/sibyte/bcm1480_mc.h        |  2 +-
 arch/mips/include/asm/sibyte/bcm1480_regs.h      |  4 +-
 arch/mips/include/asm/sibyte/bcm1480_scd.h       |  4 +-
 arch/mips/include/asm/sibyte/sb1250_dma.h        |  2 +-
 arch/mips/include/asm/sibyte/sb1250_genbus.h     |  2 +-
 arch/mips/include/asm/sibyte/sb1250_int.h        |  2 +-
 arch/mips/include/asm/sibyte/sb1250_l2c.h        |  2 +-
 arch/mips/include/asm/sibyte/sb1250_ldt.h        |  2 +-
 arch/mips/include/asm/sibyte/sb1250_mac.h        |  2 +-
 arch/mips/include/asm/sibyte/sb1250_mc.h         |  2 +-
 arch/mips/include/asm/sibyte/sb1250_regs.h       |  2 +-
 arch/mips/include/asm/sibyte/sb1250_scd.h        |  2 +-
 arch/mips/include/asm/sibyte/sb1250_smbus.h      |  2 +-
 arch/mips/include/asm/sibyte/sb1250_syncser.h    |  2 +-
 arch/mips/include/asm/sibyte/sb1250_uart.h       |  2 +-
 arch/mips/include/uapi/asm/Kbuild                |  3 ++
 arch/mn10300/include/uapi/asm/Kbuild             |  3 ++
 arch/openrisc/include/uapi/asm/Kbuild            |  3 ++
 arch/parisc/include/uapi/asm/Kbuild              |  3 ++
 arch/powerpc/include/asm/ps3.h                   |  2 +-
 arch/powerpc/include/asm/ucc_fast.h              |  2 +-
 arch/powerpc/include/asm/ucc_slow.h              |  2 +-
 arch/powerpc/include/uapi/asm/Kbuild             |  3 ++
 arch/s390/include/uapi/asm/Kbuild                |  3 ++
 arch/score/include/uapi/asm/Kbuild               |  3 ++
 arch/sh/include/asm/bl_bit.h                     |  4 +-
 arch/sh/include/asm/cache_insns.h                |  4 +-
 arch/sh/include/asm/checksum.h                   |  2 +-
 arch/sh/include/asm/mmu_context.h                |  4 +-
 arch/sh/include/asm/posix_types.h                |  8 ++--
 arch/sh/include/asm/processor.h                  |  4 +-
 arch/sh/include/asm/ptrace.h                     |  4 +-
 arch/sh/include/asm/string.h                     |  4 +-
 arch/sh/include/asm/switch_to.h                  |  4 +-
 arch/sh/include/asm/syscall.h                    |  4 +-
 arch/sh/include/asm/syscalls.h                   |  4 +-
 arch/sh/include/asm/tlb.h                        |  2 +-
 arch/sh/include/asm/traps.h                      |  4 +-
 arch/sh/include/asm/uaccess.h                    |  4 +-
 arch/sh/include/asm/unistd.h                     |  8 ++--
 arch/sh/include/mach-ecovec24/mach/romimage.h    |  2 +-
 arch/sh/include/mach-kfr2r09/mach/romimage.h     |  2 +-
 arch/sh/include/uapi/asm/Kbuild                  |  3 ++
 arch/sparc/include/uapi/asm/Kbuild               |  5 +++
 arch/tile/include/gxio/dma_queue.h               |  2 +-
 arch/tile/include/gxio/mpipe.h                   |  4 +-
 arch/tile/include/gxio/trio.h                    |  4 +-
 arch/tile/include/gxio/usb_host.h                |  2 +-
 arch/tile/include/hv/iorpc.h                     |  2 +-
 arch/tile/include/uapi/arch/Kbuild               |  1 +
 arch/tile/include/uapi/asm/Kbuild                |  3 ++
 arch/um/Makefile                                 |  4 +-
 arch/unicore32/include/mach/PKUnity.h            | 36 ++++++++--------
 arch/unicore32/include/mach/hardware.h           |  2 +-
 arch/unicore32/include/mach/uncompress.h         |  4 +-
 arch/unicore32/include/uapi/asm/Kbuild           |  3 ++
 arch/x86/boot/Makefile                           |  4 +-
 arch/x86/boot/mkcpustr.c                         |  2 +
 arch/x86/include/asm/Kbuild                      |  4 --
 arch/x86/include/asm/atomic.h                    |  4 +-
 arch/x86/include/asm/calling.h                   |  2 +-
 arch/x86/include/asm/checksum.h                  |  4 +-
 arch/x86/include/asm/cmpxchg.h                   |  4 +-
 arch/x86/include/asm/cpufeature.h                |  2 +
 arch/x86/include/asm/mmzone.h                    |  4 +-
 arch/x86/include/asm/mutex.h                     |  4 +-
 arch/x86/include/asm/numa.h                      |  4 +-
 arch/x86/include/asm/pci.h                       |  2 +-
 arch/x86/include/asm/pgtable.h                   |  4 +-
 arch/x86/include/asm/pgtable_types.h             |  4 +-
 arch/x86/include/asm/posix_types.h               | 10 ++---
 arch/x86/include/asm/seccomp.h                   |  4 +-
 arch/x86/include/asm/string.h                    |  4 +-
 arch/x86/include/asm/suspend.h                   |  4 +-
 arch/x86/include/asm/uaccess.h                   |  4 +-
 arch/x86/include/asm/user.h                      |  4 +-
 arch/x86/include/asm/xen/interface.h             |  4 +-
 arch/x86/include/asm/xor.h                       |  4 +-
 arch/x86/include/asm/xor_32.h                    |  2 +-
 arch/x86/include/asm/xor_64.h                    |  2 +-
 arch/x86/include/uapi/asm/Kbuild                 |  6 +++
 arch/x86/kernel/cpu/mkcapflags.pl                |  5 ++-
 arch/x86/lib/insn.c                              |  4 ++
 arch/x86/syscalls/Makefile                       | 17 ++++----
 arch/x86/tools/Makefile                          |  2 +-
 arch/xtensa/include/uapi/asm/Kbuild              |  3 ++
 drivers/gpu/drm/ast/ast_drv.c                    |  5 +--
 drivers/gpu/drm/ast/ast_drv.h                    | 12 +++---
 drivers/gpu/drm/ast/ast_fb.c                     |  7 ++--
 drivers/gpu/drm/ast/ast_main.c                   |  6 +--
 drivers/gpu/drm/ast/ast_mode.c                   |  6 +--
 drivers/gpu/drm/ast/ast_post.c                   |  2 +-
 drivers/gpu/drm/ast/ast_ttm.c                    |  2 +-
 drivers/gpu/drm/ati_pcigart.c                    |  2 +-
 drivers/gpu/drm/cirrus/cirrus_drv.c              |  3 +-
 drivers/gpu/drm/cirrus/cirrus_drv.h              | 10 ++---
 drivers/gpu/drm/cirrus/cirrus_fbdev.c            |  5 +--
 drivers/gpu/drm/cirrus/cirrus_main.c             |  5 +--
 drivers/gpu/drm/cirrus/cirrus_mode.c             |  5 +--
 drivers/gpu/drm/cirrus/cirrus_ttm.c              |  2 +-
 drivers/gpu/drm/drm_agpsupport.c                 |  2 +-
 drivers/gpu/drm/drm_auth.c                       |  2 +-
 drivers/gpu/drm/drm_buffer.c                     |  2 +-
 drivers/gpu/drm/drm_bufs.c                       |  2 +-
 drivers/gpu/drm/drm_cache.c                      |  2 +-
 drivers/gpu/drm/drm_context.c                    |  2 +-
 drivers/gpu/drm/drm_crtc.c                       |  9 ++--
 drivers/gpu/drm/drm_crtc_helper.c                | 12 +++---
 drivers/gpu/drm/drm_debugfs.c                    |  2 +-
 drivers/gpu/drm/drm_dma.c                        |  2 +-
 drivers/gpu/drm/drm_dp_i2c_helper.c              |  4 +-
 drivers/gpu/drm/drm_drv.c                        |  4 +-
 drivers/gpu/drm/drm_edid.c                       |  4 +-
 drivers/gpu/drm/drm_edid_load.c                  |  8 ++--
 drivers/gpu/drm/drm_edid_modes.h                 |  4 +-
 drivers/gpu/drm/drm_encoder_slave.c              |  2 +-
 drivers/gpu/drm/drm_fb_helper.c                  |  8 ++--
 drivers/gpu/drm/drm_fops.c                       |  2 +-
 drivers/gpu/drm/drm_gem.c                        |  2 +-
 drivers/gpu/drm/drm_global.c                     |  2 +-
 drivers/gpu/drm/drm_hashtab.c                    |  4 +-
 drivers/gpu/drm/drm_info.c                       |  2 +-
 drivers/gpu/drm/drm_ioc32.c                      |  4 +-
 drivers/gpu/drm/drm_ioctl.c                      |  8 ++--
 drivers/gpu/drm/drm_irq.c                        |  2 +-
 drivers/gpu/drm/drm_lock.c                       |  2 +-
 drivers/gpu/drm/drm_memory.c                     |  2 +-
 drivers/gpu/drm/drm_mm.c                         |  4 +-
 drivers/gpu/drm/drm_modes.c                      |  5 +--
 drivers/gpu/drm/drm_pci.c                        |  2 +-
 drivers/gpu/drm/drm_platform.c                   |  2 +-
 drivers/gpu/drm/drm_prime.c                      |  2 +-
 drivers/gpu/drm/drm_proc.c                       |  2 +-
 drivers/gpu/drm/drm_scatter.c                    |  2 +-
 drivers/gpu/drm/drm_stub.c                       |  4 +-
 drivers/gpu/drm/drm_sysfs.c                      |  6 +--
 drivers/gpu/drm/drm_trace_points.c               |  2 +-
 drivers/gpu/drm/drm_usb.c                        |  2 +-
 drivers/gpu/drm/drm_vm.c                         |  2 +-
 drivers/gpu/drm/exynos/exynos_ddc.c              |  2 +-
 drivers/gpu/drm/exynos/exynos_drm_buf.c          |  5 +--
 drivers/gpu/drm/exynos/exynos_drm_connector.c    |  4 +-
 drivers/gpu/drm/exynos/exynos_drm_core.c         |  2 +-
 drivers/gpu/drm/exynos/exynos_drm_crtc.c         |  4 +-
 drivers/gpu/drm/exynos/exynos_drm_dmabuf.c       |  5 +--
 drivers/gpu/drm/exynos/exynos_drm_drv.c          |  5 +--
 drivers/gpu/drm/exynos/exynos_drm_drv.h          |  1 -
 drivers/gpu/drm/exynos/exynos_drm_encoder.c      |  4 +-
 drivers/gpu/drm/exynos/exynos_drm_fb.c           |  8 ++--
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c        |  8 ++--
 drivers/gpu/drm/exynos/exynos_drm_fimd.c         |  2 +-
 drivers/gpu/drm/exynos/exynos_drm_g2d.c          |  4 +-
 drivers/gpu/drm/exynos/exynos_drm_gem.c          |  3 +-
 drivers/gpu/drm/exynos/exynos_drm_hdmi.c         |  2 +-
 drivers/gpu/drm/exynos/exynos_drm_plane.c        |  4 +-
 drivers/gpu/drm/exynos/exynos_drm_vidi.c         |  6 +--
 drivers/gpu/drm/exynos/exynos_hdmi.c             |  6 +--
 drivers/gpu/drm/exynos/exynos_hdmiphy.c          |  2 +-
 drivers/gpu/drm/exynos/exynos_mixer.c            |  2 +-
 drivers/gpu/drm/gma500/cdv_device.c              |  2 +-
 drivers/gpu/drm/gma500/gem.c                     |  2 +-
 drivers/gpu/drm/gma500/intel_bios.c              |  2 +-
 drivers/gpu/drm/gma500/intel_gmbus.c             |  5 +--
 drivers/gpu/drm/gma500/mid_bios.c                |  2 +-
 drivers/gpu/drm/gma500/oaktrail_device.c         |  2 +-
 drivers/gpu/drm/gma500/psb_device.c              |  2 +-
 drivers/gpu/drm/gma500/psb_drv.c                 |  2 +-
 drivers/gpu/drm/gma500/psb_drv.h                 |  4 +-
 drivers/gpu/drm/gma500/psb_intel_sdvo.c          |  9 ++--
 drivers/gpu/drm/i2c/ch7006_priv.h                |  8 ++--
 drivers/gpu/drm/i2c/sil164_drv.c                 |  8 ++--
 drivers/gpu/drm/i810/i810_dma.c                  |  5 +--
 drivers/gpu/drm/i810/i810_drv.c                  |  7 ++--
 drivers/gpu/drm/i915/dvo.h                       |  5 +--
 drivers/gpu/drm/i915/i915_debugfs.c              |  5 +--
 drivers/gpu/drm/i915/i915_dma.c                  |  9 ++--
 drivers/gpu/drm/i915/i915_drv.c                  |  7 ++--
 drivers/gpu/drm/i915/i915_gem.c                  |  5 +--
 drivers/gpu/drm/i915/i915_gem_context.c          |  4 +-
 drivers/gpu/drm/i915/i915_gem_debug.c            |  5 +--
 drivers/gpu/drm/i915/i915_gem_dmabuf.c           |  2 +-
 drivers/gpu/drm/i915/i915_gem_evict.c            |  5 +--
 drivers/gpu/drm/i915/i915_gem_execbuffer.c       |  5 +--
 drivers/gpu/drm/i915/i915_gem_gtt.c              |  5 +--
 drivers/gpu/drm/i915/i915_gem_stolen.c           |  5 +--
 drivers/gpu/drm/i915/i915_gem_tiling.c           |  9 ++--
 drivers/gpu/drm/i915/i915_ioc32.c                |  5 +--
 drivers/gpu/drm/i915/i915_irq.c                  |  5 +--
 drivers/gpu/drm/i915/i915_suspend.c              |  5 +--
 drivers/gpu/drm/i915/intel_acpi.c                |  2 +-
 drivers/gpu/drm/i915/intel_bios.c                |  5 +--
 drivers/gpu/drm/i915/intel_bios.h                |  2 +-
 drivers/gpu/drm/i915/intel_crt.c                 | 11 +++--
 drivers/gpu/drm/i915/intel_display.c             |  8 ++--
 drivers/gpu/drm/i915/intel_dp.c                  | 13 +++---
 drivers/gpu/drm/i915/intel_drv.h                 |  8 ++--
 drivers/gpu/drm/i915/intel_dvo.c                 |  7 ++--
 drivers/gpu/drm/i915/intel_fb.c                  |  9 ++--
 drivers/gpu/drm/i915/intel_hdmi.c                |  9 ++--
 drivers/gpu/drm/i915/intel_i2c.c                 |  5 +--
 drivers/gpu/drm/i915/intel_lvds.c                |  9 ++--
 drivers/gpu/drm/i915/intel_modes.c               |  4 +-
 drivers/gpu/drm/i915/intel_opregion.c            |  4 +-
 drivers/gpu/drm/i915/intel_overlay.c             |  5 +--
 drivers/gpu/drm/i915/intel_ringbuffer.c          |  5 +--
 drivers/gpu/drm/i915/intel_sdvo.c                |  9 ++--
 drivers/gpu/drm/i915/intel_sprite.c              |  8 ++--
 drivers/gpu/drm/i915/intel_tv.c                  |  9 ++--
 drivers/gpu/drm/mga/mga_dma.c                    |  6 +--
 drivers/gpu/drm/mga/mga_drv.c                    |  7 ++--
 drivers/gpu/drm/mga/mga_ioc32.c                  |  5 +--
 drivers/gpu/drm/mga/mga_irq.c                    |  5 +--
 drivers/gpu/drm/mga/mga_state.c                  |  5 +--
 drivers/gpu/drm/mga/mga_warp.c                   |  5 +--
 drivers/gpu/drm/mgag200/mgag200_drv.c            |  5 +--
 drivers/gpu/drm/mgag200/mgag200_drv.h            | 12 +++---
 drivers/gpu/drm/mgag200/mgag200_fb.c             |  5 +--
 drivers/gpu/drm/mgag200/mgag200_i2c.c            |  3 +-
 drivers/gpu/drm/mgag200/mgag200_main.c           |  5 +--
 drivers/gpu/drm/mgag200/mgag200_mode.c           |  5 +--
 drivers/gpu/drm/mgag200/mgag200_ttm.c            |  2 +-
 drivers/gpu/drm/nouveau/nouveau_abi16.c          |  2 +-
 drivers/gpu/drm/nouveau/nouveau_acpi.c           |  8 ++--
 drivers/gpu/drm/nouveau/nouveau_backlight.c      |  4 +-
 drivers/gpu/drm/nouveau/nouveau_bios.c           |  2 +-
 drivers/gpu/drm/nouveau/nouveau_bo.c             |  6 +--
 drivers/gpu/drm/nouveau/nouveau_calc.c           |  2 +-
 drivers/gpu/drm/nouveau/nouveau_channel.c        |  5 +--
 drivers/gpu/drm/nouveau/nouveau_connector.c      |  6 +--
 drivers/gpu/drm/nouveau/nouveau_connector.h      |  2 +-
 drivers/gpu/drm/nouveau/nouveau_debugfs.c        |  2 +-
 drivers/gpu/drm/nouveau/nouveau_display.c        |  4 +-
 drivers/gpu/drm/nouveau/nouveau_dma.c            |  3 +-
 drivers/gpu/drm/nouveau/nouveau_dp.c             |  2 +-
 drivers/gpu/drm/nouveau/nouveau_drv.c            |  7 ++--
 drivers/gpu/drm/nouveau/nouveau_drv.h            | 12 +++---
 drivers/gpu/drm/nouveau/nouveau_encoder.h        |  2 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c          | 11 +++--
 drivers/gpu/drm/nouveau/nouveau_fbcon.h          |  2 +-
 drivers/gpu/drm/nouveau/nouveau_fence.c          |  3 +-
 drivers/gpu/drm/nouveau/nouveau_gem.c            |  5 +--
 drivers/gpu/drm/nouveau/nouveau_gpio.c           |  2 +-
 drivers/gpu/drm/nouveau/nouveau_gpuobj.c         |  5 +--
 drivers/gpu/drm/nouveau/nouveau_hdmi.c           |  2 +-
 drivers/gpu/drm/nouveau/nouveau_hw.c             |  2 +-
 drivers/gpu/drm/nouveau/nouveau_hw.h             |  2 +-
 drivers/gpu/drm/nouveau/nouveau_i2c.c            |  2 +-
 drivers/gpu/drm/nouveau/nouveau_i2c.h            |  2 +-
 drivers/gpu/drm/nouveau/nouveau_ioc32.c          |  3 +-
 drivers/gpu/drm/nouveau/nouveau_irq.c            |  5 +--
 drivers/gpu/drm/nouveau/nouveau_mem.c            |  4 +-
 drivers/gpu/drm/nouveau/nouveau_mm.c             |  2 +-
 drivers/gpu/drm/nouveau/nouveau_mxm.c            |  2 +-
 drivers/gpu/drm/nouveau/nouveau_notifier.c       |  3 +-
 drivers/gpu/drm/nouveau/nouveau_perf.c           |  2 +-
 drivers/gpu/drm/nouveau/nouveau_pm.c             |  2 +-
 drivers/gpu/drm/nouveau/nouveau_prime.c          |  5 +--
 drivers/gpu/drm/nouveau/nouveau_ramht.c          |  2 +-
 drivers/gpu/drm/nouveau/nouveau_sgdma.c          |  2 +-
 drivers/gpu/drm/nouveau/nouveau_state.c          |  8 ++--
 drivers/gpu/drm/nouveau/nouveau_temp.c           |  2 +-
 drivers/gpu/drm/nouveau/nouveau_ttm.c            |  2 +-
 drivers/gpu/drm/nouveau/nouveau_vm.c             |  2 +-
 drivers/gpu/drm/nouveau/nouveau_vm.h             |  2 +-
 drivers/gpu/drm/nouveau/nouveau_volt.c           |  2 +-
 drivers/gpu/drm/nouveau/nv04_crtc.c              |  4 +-
 drivers/gpu/drm/nouveau/nv04_cursor.c            |  3 +-
 drivers/gpu/drm/nouveau/nv04_dac.c               |  4 +-
 drivers/gpu/drm/nouveau/nv04_dfp.c               |  6 +--
 drivers/gpu/drm/nouveau/nv04_display.c           |  5 +--
 drivers/gpu/drm/nouveau/nv04_fb.c                |  5 +--
 drivers/gpu/drm/nouveau/nv04_fbcon.c             |  2 +-
 drivers/gpu/drm/nouveau/nv04_fence.c             |  2 +-
 drivers/gpu/drm/nouveau/nv04_fifo.c              |  3 +-
 drivers/gpu/drm/nouveau/nv04_graph.c             |  5 +--
 drivers/gpu/drm/nouveau/nv04_instmem.c           |  3 +-
 drivers/gpu/drm/nouveau/nv04_mc.c                |  5 +--
 drivers/gpu/drm/nouveau/nv04_pm.c                |  2 +-
 drivers/gpu/drm/nouveau/nv04_software.c          |  2 +-
 drivers/gpu/drm/nouveau/nv04_timer.c             |  5 +--
 drivers/gpu/drm/nouveau/nv04_tv.c                |  6 +--
 drivers/gpu/drm/nouveau/nv10_fb.c                |  5 +--
 drivers/gpu/drm/nouveau/nv10_fence.c             |  2 +-
 drivers/gpu/drm/nouveau/nv10_fifo.c              |  3 +-
 drivers/gpu/drm/nouveau/nv10_gpio.c              |  2 +-
 drivers/gpu/drm/nouveau/nv10_graph.c             |  5 +--
 drivers/gpu/drm/nouveau/nv17_fifo.c              |  3 +-
 drivers/gpu/drm/nouveau/nv17_tv.c                |  4 +-
 drivers/gpu/drm/nouveau/nv17_tv_modes.c          |  4 +-
 drivers/gpu/drm/nouveau/nv20_fb.c                |  5 +--
 drivers/gpu/drm/nouveau/nv20_graph.c             |  5 +--
 drivers/gpu/drm/nouveau/nv30_fb.c                |  5 +--
 drivers/gpu/drm/nouveau/nv31_mpeg.c              |  2 +-
 drivers/gpu/drm/nouveau/nv40_fb.c                |  5 +--
 drivers/gpu/drm/nouveau/nv40_fifo.c              |  3 +-
 drivers/gpu/drm/nouveau/nv40_graph.c             |  3 +-
 drivers/gpu/drm/nouveau/nv40_grctx.c             |  2 +-
 drivers/gpu/drm/nouveau/nv40_mc.c                |  5 +--
 drivers/gpu/drm/nouveau/nv40_pm.c                |  2 +-
 drivers/gpu/drm/nouveau/nv50_calc.c              |  2 +-
 drivers/gpu/drm/nouveau/nv50_crtc.c              |  5 +--
 drivers/gpu/drm/nouveau/nv50_cursor.c            |  3 +-
 drivers/gpu/drm/nouveau/nv50_dac.c               |  4 +-
 drivers/gpu/drm/nouveau/nv50_display.c           |  2 +-
 drivers/gpu/drm/nouveau/nv50_display.h           |  3 +-
 drivers/gpu/drm/nouveau/nv50_evo.c               |  2 +-
 drivers/gpu/drm/nouveau/nv50_fb.c                |  5 +--
 drivers/gpu/drm/nouveau/nv50_fbcon.c             |  2 +-
 drivers/gpu/drm/nouveau/nv50_fifo.c              |  3 +-
 drivers/gpu/drm/nouveau/nv50_gpio.c              |  2 +-
 drivers/gpu/drm/nouveau/nv50_graph.c             |  3 +-
 drivers/gpu/drm/nouveau/nv50_grctx.c             |  2 +-
 drivers/gpu/drm/nouveau/nv50_instmem.c           |  3 +-
 drivers/gpu/drm/nouveau/nv50_mc.c                |  3 +-
 drivers/gpu/drm/nouveau/nv50_mpeg.c              |  2 +-
 drivers/gpu/drm/nouveau/nv50_pm.c                |  2 +-
 drivers/gpu/drm/nouveau/nv50_software.c          |  2 +-
 drivers/gpu/drm/nouveau/nv50_sor.c               |  4 +-
 drivers/gpu/drm/nouveau/nv50_vm.c                |  2 +-
 drivers/gpu/drm/nouveau/nv50_vram.c              |  2 +-
 drivers/gpu/drm/nouveau/nv84_bsp.c               |  2 +-
 drivers/gpu/drm/nouveau/nv84_crypt.c             |  2 +-
 drivers/gpu/drm/nouveau/nv84_fence.c             |  2 +-
 drivers/gpu/drm/nouveau/nv84_fifo.c              |  3 +-
 drivers/gpu/drm/nouveau/nv84_vp.c                |  2 +-
 drivers/gpu/drm/nouveau/nv98_crypt.c             |  2 +-
 drivers/gpu/drm/nouveau/nv98_ppp.c               |  2 +-
 drivers/gpu/drm/nouveau/nva3_copy.c              |  2 +-
 drivers/gpu/drm/nouveau/nva3_pm.c                |  2 +-
 drivers/gpu/drm/nouveau/nvc0_copy.c              |  2 +-
 drivers/gpu/drm/nouveau/nvc0_fb.c                |  5 +--
 drivers/gpu/drm/nouveau/nvc0_fbcon.c             |  2 +-
 drivers/gpu/drm/nouveau/nvc0_fence.c             |  2 +-
 drivers/gpu/drm/nouveau/nvc0_fifo.c              |  2 +-
 drivers/gpu/drm/nouveau/nvc0_graph.c             |  2 +-
 drivers/gpu/drm/nouveau/nvc0_grctx.c             |  2 +-
 drivers/gpu/drm/nouveau/nvc0_instmem.c           |  2 +-
 drivers/gpu/drm/nouveau/nvc0_pm.c                |  2 +-
 drivers/gpu/drm/nouveau/nvc0_software.c          |  2 +-
 drivers/gpu/drm/nouveau/nvc0_vm.c                |  2 +-
 drivers/gpu/drm/nouveau/nvc0_vram.c              |  2 +-
 drivers/gpu/drm/nouveau/nvd0_display.c           |  4 +-
 drivers/gpu/drm/nouveau/nve0_fifo.c              |  2 +-
 drivers/gpu/drm/nouveau/nve0_graph.c             |  2 +-
 drivers/gpu/drm/nouveau/nve0_grctx.c             |  2 +-
 drivers/gpu/drm/r128/r128_cce.c                  |  5 +--
 drivers/gpu/drm/r128/r128_drv.c                  |  7 ++--
 drivers/gpu/drm/r128/r128_ioc32.c                |  5 +--
 drivers/gpu/drm/r128/r128_irq.c                  |  5 +--
 drivers/gpu/drm/r128/r128_state.c                |  5 +--
 drivers/gpu/drm/radeon/atom.h                    |  2 +-
 drivers/gpu/drm/radeon/atombios_dp.c             |  6 +--
 drivers/gpu/drm/radeon/atombios_encoders.c       |  6 +--
 drivers/gpu/drm/radeon/atombios_i2c.c            |  4 +-
 drivers/gpu/drm/radeon/evergreen.c               |  4 +-
 drivers/gpu/drm/radeon/evergreen_blit_kms.c      |  5 +--
 drivers/gpu/drm/radeon/evergreen_cs.c            |  2 +-
 drivers/gpu/drm/radeon/evergreen_hdmi.c          |  4 +-
 drivers/gpu/drm/radeon/ni.c                      |  4 +-
 drivers/gpu/drm/radeon/r100.c                    |  5 +--
 drivers/gpu/drm/radeon/r200.c                    |  5 +--
 drivers/gpu/drm/radeon/r300.c                    |  2 +-
 drivers/gpu/drm/radeon/r300_cmdbuf.c             |  7 ++--
 drivers/gpu/drm/radeon/r420.c                    |  2 +-
 drivers/gpu/drm/radeon/r520.c                    |  2 +-
 drivers/gpu/drm/radeon/r600.c                    |  4 +-
 drivers/gpu/drm/radeon/r600_audio.c              |  2 +-
 drivers/gpu/drm/radeon/r600_blit.c               |  5 +--
 drivers/gpu/drm/radeon/r600_blit_kms.c           |  5 +--
 drivers/gpu/drm/radeon/r600_cp.c                 |  5 +--
 drivers/gpu/drm/radeon/r600_cs.c                 |  2 +-
 drivers/gpu/drm/radeon/r600_hdmi.c               |  4 +-
 drivers/gpu/drm/radeon/radeon_acpi.c             |  6 +--
 drivers/gpu/drm/radeon/radeon_agp.c              |  5 +--
 drivers/gpu/drm/radeon/radeon_atombios.c         |  4 +-
 drivers/gpu/drm/radeon/radeon_bios.c             |  2 +-
 drivers/gpu/drm/radeon/radeon_clocks.c           |  4 +-
 drivers/gpu/drm/radeon/radeon_combios.c          |  4 +-
 drivers/gpu/drm/radeon/radeon_connectors.c       | 10 ++---
 drivers/gpu/drm/radeon/radeon_cp.c               |  6 +--
 drivers/gpu/drm/radeon/radeon_cs.c               |  4 +-
 drivers/gpu/drm/radeon/radeon_cursor.c           |  4 +-
 drivers/gpu/drm/radeon/radeon_display.c          |  8 ++--
 drivers/gpu/drm/radeon/radeon_drv.c              |  7 ++--
 drivers/gpu/drm/radeon/radeon_encoders.c         |  6 +--
 drivers/gpu/drm/radeon/radeon_fb.c               | 11 +++--
 drivers/gpu/drm/radeon/radeon_fence.c            |  3 +-
 drivers/gpu/drm/radeon/radeon_gart.c             |  4 +-
 drivers/gpu/drm/radeon/radeon_gem.c              |  5 +--
 drivers/gpu/drm/radeon/radeon_i2c.c              |  6 +--
 drivers/gpu/drm/radeon/radeon_ioc32.c            |  5 +--
 drivers/gpu/drm/radeon/radeon_irq.c              |  5 +--
 drivers/gpu/drm/radeon/radeon_irq_kms.c          |  6 +--
 drivers/gpu/drm/radeon/radeon_kms.c              |  5 +--
 drivers/gpu/drm/radeon/radeon_legacy_encoders.c  |  6 +--
 drivers/gpu/drm/radeon/radeon_legacy_tv.c        |  4 +-
 drivers/gpu/drm/radeon/radeon_mem.c              |  5 +--
 drivers/gpu/drm/radeon/radeon_mode.h             | 11 +++--
 drivers/gpu/drm/radeon/radeon_object.c           |  2 +-
 drivers/gpu/drm/radeon/radeon_pm.c               |  2 +-
 drivers/gpu/drm/radeon/radeon_prime.c            |  5 +--
 drivers/gpu/drm/radeon/radeon_ring.c             |  4 +-
 drivers/gpu/drm/radeon/radeon_sa.c               |  3 +-
 drivers/gpu/drm/radeon/radeon_semaphore.c        |  3 +-
 drivers/gpu/drm/radeon/radeon_state.c            |  8 ++--
 drivers/gpu/drm/radeon/radeon_trace_points.c     |  2 +-
 drivers/gpu/drm/radeon/rs600.c                   |  2 +-
 drivers/gpu/drm/radeon/rs690.c                   |  2 +-
 drivers/gpu/drm/radeon/rv515.c                   |  2 +-
 drivers/gpu/drm/radeon/rv770.c                   |  4 +-
 drivers/gpu/drm/radeon/si.c                      |  4 +-
 drivers/gpu/drm/savage/savage_bci.c              |  4 +-
 drivers/gpu/drm/savage/savage_drv.c              |  6 +--
 drivers/gpu/drm/savage/savage_state.c            |  4 +-
 drivers/gpu/drm/sis/sis_drv.c                    |  6 +--
 drivers/gpu/drm/sis/sis_drv.h                    |  2 +-
 drivers/gpu/drm/sis/sis_mm.c                     |  4 +-
 drivers/gpu/drm/tdfx/tdfx_drv.c                  |  4 +-
 drivers/gpu/drm/ttm/ttm_agp_backend.c            |  8 ++--
 drivers/gpu/drm/ttm/ttm_bo.c                     |  6 +--
 drivers/gpu/drm/ttm/ttm_bo_manager.c             |  8 ++--
 drivers/gpu/drm/ttm/ttm_bo_util.c                |  4 +-
 drivers/gpu/drm/ttm/ttm_execbuf_util.c           |  6 +--
 drivers/gpu/drm/ttm/ttm_lock.c                   |  4 +-
 drivers/gpu/drm/ttm/ttm_memory.c                 |  6 +--
 drivers/gpu/drm/ttm/ttm_module.c                 |  4 +-
 drivers/gpu/drm/ttm/ttm_object.c                 |  4 +-
 drivers/gpu/drm/ttm/ttm_page_alloc.c             |  4 +-
 drivers/gpu/drm/ttm/ttm_page_alloc_dma.c         |  4 +-
 drivers/gpu/drm/ttm/ttm_tt.c                     | 12 +++---
 drivers/gpu/drm/udl/udl_connector.c              |  8 ++--
 drivers/gpu/drm/udl/udl_drv.c                    |  4 +-
 drivers/gpu/drm/udl/udl_encoder.c                |  6 +--
 drivers/gpu/drm/udl/udl_fb.c                     |  9 ++--
 drivers/gpu/drm/udl/udl_gem.c                    |  2 +-
 drivers/gpu/drm/udl/udl_main.c                   |  2 +-
 drivers/gpu/drm/udl/udl_modeset.c                |  6 +--
 drivers/gpu/drm/udl/udl_transfer.c               |  2 +-
 drivers/gpu/drm/via/via_dma.c                    |  5 +--
 drivers/gpu/drm/via/via_dmablit.c                |  4 +-
 drivers/gpu/drm/via/via_drv.c                    |  6 +--
 drivers/gpu/drm/via/via_drv.h                    |  2 +-
 drivers/gpu/drm/via/via_irq.c                    |  5 +--
 drivers/gpu/drm/via/via_map.c                    |  4 +-
 drivers/gpu/drm/via/via_mm.c                     |  4 +-
 drivers/gpu/drm/via/via_verifier.c               |  5 +--
 drivers/gpu/drm/via/via_video.c                  |  4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c           |  6 +--
 drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c           |  4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c              | 10 ++---
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h              | 18 ++++----
 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c          |  4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c               |  4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fence.c            |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c             |  4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c              |  4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c    |  6 +--
 drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c            |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_irq.c              |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.h              |  4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c          |  4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c         |  8 ++--
 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c         |  2 +-
 include/acpi/acpi.h                              | 18 ++++----
 include/acpi/acpiosxf.h                          |  4 +-
 include/acpi/acpixf.h                            |  6 +--
 include/acpi/platform/acenv.h                    |  2 +-
 include/acpi/platform/aclinux.h                  |  2 +-
 include/asm-generic/Kbuild.asm                   | 46 +--------------------
 include/drm/drm.h                                |  2 +-
 include/drm/drmP.h                               | 17 ++++----
 include/drm/drm_buffer.h                         |  2 +-
 include/drm/drm_crtc.h                           |  1 +
 include/drm/drm_encoder_slave.h                  |  4 +-
 include/drm/drm_memory.h                         |  2 +-
 include/drm/drm_sarea.h                          |  2 +-
 include/drm/exynos_drm.h                         |  2 +-
 include/drm/i915_drm.h                           |  2 +-
 include/drm/mga_drm.h                            |  2 +-
 include/drm/radeon_drm.h                         |  2 +-
 include/drm/ttm/ttm_bo_api.h                     |  2 +-
 include/drm/ttm/ttm_bo_driver.h                  | 16 ++++----
 include/drm/ttm/ttm_execbuf_util.h               |  2 +-
 include/drm/ttm/ttm_lock.h                       |  2 +-
 include/drm/ttm/ttm_object.h                     |  2 +-
 include/drm/ttm/ttm_page_alloc.h                 |  4 +-
 include/drm/via_drm.h                            |  2 +-
 include/linux/Kbuild                             |  2 -
 include/linux/bcma/bcma.h                        |  2 +-
 include/linux/ceph/ceph_fs.h                     |  4 +-
 include/linux/ceph/debugfs.h                     |  4 +-
 include/linux/ceph/decode.h                      |  2 +-
 include/linux/ceph/libceph.h                     | 14 +++----
 include/linux/ceph/mdsmap.h                      |  2 +-
 include/linux/ceph/messenger.h                   |  4 +-
 include/linux/ceph/mon_client.h                  |  2 +-
 include/linux/ceph/msgpool.h                     |  2 +-
 include/linux/ceph/osdmap.h                      |  4 +-
 include/linux/ceph/rados.h                       |  2 +-
 include/linux/ceph/types.h                       |  6 +--
 include/linux/crush/mapper.h                     |  2 +-
 include/linux/drbd_tag_magic.h                   |  8 ++--
 include/linux/libfdt.h                           |  4 +-
 include/linux/netfilter/nf_conntrack_h323_asn1.h |  2 +-
 include/linux/pinctrl/consumer.h                 |  2 +-
 include/linux/pinctrl/machine.h                  |  2 +-
 include/linux/pinctrl/pinctrl.h                  |  2 +-
 include/linux/pinctrl/pinmux.h                   |  2 +-
 include/scsi/osd_attributes.h                    |  2 +-
 include/scsi/osd_initiator.h                     |  4 +-
 include/scsi/osd_sec.h                           |  4 +-
 include/sound/ac97_codec.h                       |  6 +--
 include/sound/ad1816a.h                          |  6 +--
 include/sound/ak4531_codec.h                     |  4 +-
 include/sound/emu10k1_synth.h                    |  4 +-
 include/sound/emu8000.h                          |  4 +-
 include/sound/emux_legacy.h                      |  2 +-
 include/sound/emux_synth.h                       | 14 +++----
 include/sound/es1688.h                           |  4 +-
 include/sound/gus.h                              | 10 ++---
 include/sound/mpu401.h                           |  2 +-
 include/sound/pcm.h                              |  2 +-
 include/sound/rawmidi.h                          |  2 +-
 include/sound/sb.h                               |  4 +-
 include/sound/sb16_csp.h                         |  4 +-
 include/sound/seq_kernel.h                       |  2 +-
 include/sound/seq_midi_emul.h                    |  2 +-
 include/sound/seq_midi_event.h                   |  2 +-
 include/sound/seq_oss.h                          |  4 +-
 include/sound/seq_virmidi.h                      |  4 +-
 include/sound/snd_wavefront.h                    |  8 ++--
 include/sound/soundfont.h                        |  4 +-
 include/sound/tea6330t.h                         |  2 +-
 include/sound/wss.h                              |  8 ++--
 include/trace/events/compaction.h                |  2 +-
 include/trace/events/kmem.h                      |  2 +-
 include/trace/events/vmscan.h                    |  2 +-
 include/uapi/Kbuild                              | 14 +++++++
 include/uapi/asm-generic/Kbuild                  |  1 +
 include/uapi/asm-generic/Kbuild.asm              | 49 ++++++++++++++++++++++
 include/uapi/drm/Kbuild                          |  1 +
 include/uapi/linux/Kbuild                        | 24 +++++++++++
 include/uapi/linux/byteorder/Kbuild              |  1 +
 include/uapi/linux/caif/Kbuild                   |  1 +
 include/uapi/linux/can/Kbuild                    |  1 +
 include/uapi/linux/dvb/Kbuild                    |  1 +
 include/uapi/linux/hdlc/Kbuild                   |  1 +
 include/uapi/linux/hsi/Kbuild                    |  1 +
 include/uapi/linux/isdn/Kbuild                   |  1 +
 include/uapi/linux/mmc/Kbuild                    |  1 +
 include/uapi/linux/netfilter/Kbuild              |  2 +
 include/uapi/linux/netfilter/ipset/Kbuild        |  1 +
 include/uapi/linux/netfilter_arp/Kbuild          |  1 +
 include/uapi/linux/netfilter_bridge/Kbuild       |  1 +
 include/uapi/linux/netfilter_ipv4/Kbuild         |  1 +
 include/uapi/linux/netfilter_ipv6/Kbuild         |  1 +
 include/uapi/linux/nfsd/Kbuild                   |  1 +
 include/uapi/linux/raid/Kbuild                   |  1 +
 include/uapi/linux/spi/Kbuild                    |  1 +
 include/uapi/linux/sunrpc/Kbuild                 |  1 +
 include/uapi/linux/tc_act/Kbuild                 |  1 +
 include/uapi/linux/tc_ematch/Kbuild              |  1 +
 include/uapi/linux/usb/Kbuild                    |  1 +
 include/uapi/linux/wimax/Kbuild                  |  1 +
 include/uapi/mtd/Kbuild                          |  1 +
 include/uapi/rdma/Kbuild                         |  1 +
 include/uapi/scsi/Kbuild                         |  2 +
 include/uapi/scsi/fc/Kbuild                      |  1 +
 include/uapi/sound/Kbuild                        |  1 +
 include/uapi/video/Kbuild                        |  1 +
 include/uapi/xen/Kbuild                          |  1 +
 include/xen/interface/callback.h                 |  2 +-
 include/xen/interface/hvm/params.h               |  2 +-
 include/xen/interface/io/blkif.h                 |  4 +-
 include/xen/interface/io/netif.h                 |  4 +-
 include/xen/interface/platform.h                 |  2 +-
 include/xen/interface/sched.h                    |  2 +-
 include/xen/interface/version.h                  |  2 +-
 scripts/Makefile.headersinst                     | 52 +++++++++++++++---------
 scripts/headers_install.pl                       | 14 ++++---
 634 files changed, 1399 insertions(+), 1327 deletions(-)
 create mode 100644 arch/alpha/include/uapi/asm/Kbuild
 create mode 100644 arch/arm/include/uapi/asm/Kbuild
 create mode 100644 arch/arm64/include/uapi/asm/Kbuild
 create mode 100644 arch/avr32/include/uapi/asm/Kbuild
 create mode 100644 arch/blackfin/include/uapi/asm/Kbuild
 create mode 100644 arch/c6x/include/uapi/asm/Kbuild
 create mode 100644 arch/cris/include/uapi/arch-v10/arch/Kbuild
 create mode 100644 arch/cris/include/uapi/arch-v32/arch/Kbuild
 create mode 100644 arch/cris/include/uapi/asm/Kbuild
 create mode 100644 arch/frv/include/uapi/asm/Kbuild
 create mode 100644 arch/h8300/include/uapi/asm/Kbuild
 create mode 100644 arch/hexagon/include/uapi/asm/Kbuild
 create mode 100644 arch/ia64/include/uapi/asm/Kbuild
 create mode 100644 arch/m32r/include/uapi/asm/Kbuild
 create mode 100644 arch/m68k/include/uapi/asm/Kbuild
 create mode 100644 arch/microblaze/include/uapi/asm/Kbuild
 create mode 100644 arch/mips/include/uapi/asm/Kbuild
 create mode 100644 arch/mn10300/include/uapi/asm/Kbuild
 create mode 100644 arch/openrisc/include/uapi/asm/Kbuild
 create mode 100644 arch/parisc/include/uapi/asm/Kbuild
 create mode 100644 arch/powerpc/include/uapi/asm/Kbuild
 create mode 100644 arch/s390/include/uapi/asm/Kbuild
 create mode 100644 arch/score/include/uapi/asm/Kbuild
 create mode 100644 arch/sh/include/uapi/asm/Kbuild
 create mode 100644 arch/sparc/include/uapi/asm/Kbuild
 create mode 100644 arch/tile/include/uapi/arch/Kbuild
 create mode 100644 arch/tile/include/uapi/asm/Kbuild
 create mode 100644 arch/unicore32/include/uapi/asm/Kbuild
 create mode 100644 arch/x86/include/uapi/asm/Kbuild
 create mode 100644 arch/xtensa/include/uapi/asm/Kbuild
 create mode 100644 include/uapi/Kbuild
 create mode 100644 include/uapi/asm-generic/Kbuild
 create mode 100644 include/uapi/asm-generic/Kbuild.asm
 create mode 100644 include/uapi/drm/Kbuild
 create mode 100644 include/uapi/linux/Kbuild
 create mode 100644 include/uapi/linux/byteorder/Kbuild
 create mode 100644 include/uapi/linux/caif/Kbuild
 create mode 100644 include/uapi/linux/can/Kbuild
 create mode 100644 include/uapi/linux/dvb/Kbuild
 create mode 100644 include/uapi/linux/hdlc/Kbuild
 create mode 100644 include/uapi/linux/hsi/Kbuild
 create mode 100644 include/uapi/linux/isdn/Kbuild
 create mode 100644 include/uapi/linux/mmc/Kbuild
 create mode 100644 include/uapi/linux/netfilter/Kbuild
 create mode 100644 include/uapi/linux/netfilter/ipset/Kbuild
 create mode 100644 include/uapi/linux/netfilter_arp/Kbuild
 create mode 100644 include/uapi/linux/netfilter_bridge/Kbuild
 create mode 100644 include/uapi/linux/netfilter_ipv4/Kbuild
 create mode 100644 include/uapi/linux/netfilter_ipv6/Kbuild
 create mode 100644 include/uapi/linux/nfsd/Kbuild
 create mode 100644 include/uapi/linux/raid/Kbuild
 create mode 100644 include/uapi/linux/spi/Kbuild
 create mode 100644 include/uapi/linux/sunrpc/Kbuild
 create mode 100644 include/uapi/linux/tc_act/Kbuild
 create mode 100644 include/uapi/linux/tc_ematch/Kbuild
 create mode 100644 include/uapi/linux/usb/Kbuild
 create mode 100644 include/uapi/linux/wimax/Kbuild
 create mode 100644 include/uapi/mtd/Kbuild
 create mode 100644 include/uapi/rdma/Kbuild
 create mode 100644 include/uapi/scsi/Kbuild
 create mode 100644 include/uapi/scsi/fc/Kbuild
 create mode 100644 include/uapi/sound/Kbuild
 create mode 100644 include/uapi/video/Kbuild
 create mode 100644 include/uapi/xen/Kbuild

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [GIT PULL] User API Disintegrate: Preparatory patches
  2012-10-02 18:36 [GIT PULL] User API Disintegrate: Preparatory patches David Howells
@ 2012-10-04 17:12 ` Geert Uytterhoeven
  2012-10-04 17:36 ` David Howells
  2012-10-17  8:42 ` James Hogan
  2 siblings, 0 replies; 15+ messages in thread
From: Geert Uytterhoeven @ 2012-10-04 17:12 UTC (permalink / raw)
  To: David Howells
  Cc: torvalds, arnd, hpa, alan, fengguang.wu, linux-arch, linux-kernel

On Tue, Oct 2, 2012 at 8:36 PM, David Howells <dhowells@redhat.com> wrote:
>  include/linux/libfdt.h                           |  4 +-

So what happened here?

 -#include "../../scripts/dtc/libfdt/fdt.h"
-#include "../../scripts/dtc/libfdt/libfdt.h"
+#include <>
+#include <>

Woops...

http://kisskb.ellerman.id.au/kisskb/buildresult/7312681/
include/linux/libfdt.h:5:10: error: empty filename in #include
include/linux/libfdt.h:6:10: error: empty filename in #include

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [GIT PULL] User API Disintegrate: Preparatory patches
  2012-10-02 18:36 [GIT PULL] User API Disintegrate: Preparatory patches David Howells
  2012-10-04 17:12 ` Geert Uytterhoeven
@ 2012-10-04 17:36 ` David Howells
  2012-10-17  8:42 ` James Hogan
  2 siblings, 0 replies; 15+ messages in thread
From: David Howells @ 2012-10-04 17:36 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: dhowells, torvalds, arnd, hpa, alan, fengguang.wu, linux-arch,
	linux-kernel

Geert Uytterhoeven <geert@linux-m68k.org> wrote:

> >  include/linux/libfdt.h                           |  4 +-
> 
> So what happened here?
> 
>  -#include "../../scripts/dtc/libfdt/fdt.h"
> -#include "../../scripts/dtc/libfdt/libfdt.h"
> +#include <>
> +#include <>

I didn't expect 'system' header files to be outside of include/ or
arch/*/include/, so the bit of perl I had to turn this into <...> quietly
malfunctioned when it stripped too much off of the front.

Out of interest, why aren't these in include/?  The normal way seems to be to
point the tool build at the kernel headers, not the kernel build at the script
headers.

David

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [GIT PULL] User API Disintegrate: Preparatory patches
  2012-10-02 18:36 [GIT PULL] User API Disintegrate: Preparatory patches David Howells
  2012-10-04 17:12 ` Geert Uytterhoeven
  2012-10-04 17:36 ` David Howells
@ 2012-10-17  8:42 ` James Hogan
  2012-10-22 11:50   ` James Hogan
  2 siblings, 1 reply; 15+ messages in thread
From: James Hogan @ 2012-10-17  8:42 UTC (permalink / raw)
  To: David Howells
  Cc: torvalds, arnd, hpa, alan, fengguang.wu, linux-arch, linux-kernel

On 2 October 2012 19:36, David Howells <dhowells@redhat.com> wrote:
> The patches herein prepare for the extraction of the Userspace API bits from
> the various header files named in the Kbuild files.
>
> [IMPORTANT NOTE!  These patches may need regenerating if the header files
>  change too much.  This doesn't normally take very long to do as the
>  disintegration procedure is almost entirely scripted.]

Hi David,

Any chance you (or somebody else) can point me towards your latest
scripts for all this UAPI disintegration work? They don't seem to be
in the kernel tree, and the only scripts I can find are from 2011 so I
guess they're probably a bit out of date.

Thanks in advance
-- 
James Hogan

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [GIT PULL] User API Disintegrate: Preparatory patches
  2012-10-17  8:42 ` James Hogan
@ 2012-10-22 11:50   ` James Hogan
  2012-11-01 10:41     ` UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches) Vineet Gupta
                       ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: James Hogan @ 2012-10-22 11:50 UTC (permalink / raw)
  To: David Howells
  Cc: torvalds, arnd, hpa, alan, fengguang.wu, linux-arch, linux-kernel

On 17 October 2012 09:42, James Hogan <james@albanarts.com> wrote:
> On 2 October 2012 19:36, David Howells <dhowells@redhat.com> wrote:
>> The patches herein prepare for the extraction of the Userspace API bits from
>> the various header files named in the Kbuild files.
>>
>> [IMPORTANT NOTE!  These patches may need regenerating if the header files
>>  change too much.  This doesn't normally take very long to do as the
>>  disintegration procedure is almost entirely scripted.]
>
> Hi David,
>
> Any chance you (or somebody else) can point me towards your latest
> scripts for all this UAPI disintegration work? They don't seem to be
> in the kernel tree, and the only scripts I can find are from 2011 so I
> guess they're probably a bit out of date.

Ping... Please can you point me to the scripts you've been using David?

Thanks
James Hogan

^ permalink raw reply	[flat|nested] 15+ messages in thread

* UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches)
  2012-10-22 11:50   ` James Hogan
@ 2012-11-01 10:41     ` Vineet Gupta
  2012-11-08 12:38     ` David Howells
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 15+ messages in thread
From: Vineet Gupta @ 2012-11-01 10:41 UTC (permalink / raw)
  To: David Howells
  Cc: James Hogan, torvalds, arnd, hpa, alan, fengguang.wu, linux-arch,
	linux-kernel

On Monday 22 October 2012 05:20 PM, James Hogan wrote:
> On 17 October 2012 09:42, James Hogan <james@albanarts.com> wrote:
>> On 2 October 2012 19:36, David Howells <dhowells@redhat.com> wrote:
>>> The patches herein prepare for the extraction of the Userspace API bits from
>>> the various header files named in the Kbuild files.
>>>
>>> [IMPORTANT NOTE!  These patches may need regenerating if the header files
>>>  change too much.  This doesn't normally take very long to do as the
>>>  disintegration procedure is almost entirely scripted.]
>>
>> Hi David,
>>
>> Any chance you (or somebody else) can point me towards your latest
>> scripts for all this UAPI disintegration work? They don't seem to be
>> in the kernel tree, and the only scripts I can find are from 2011 so I
>> guess they're probably a bit out of date.
> 
> Ping... Please can you point me to the scripts you've been using David?
> 
> Thanks
> James Hogan
> 

Hi David,

I'm planning to submit ARC Linux kernel port (from Synopsys) for review
on lkml and arch mailing lists. I already have a a 3.7-rc3 based kernel
(modulo the arch UAPI split). What would be the best way to get the UAPI
split done.

Can you point me to the latest scripts and the best way to use them (so
we have consistent automated split of headers). Otherwise if you like,
you could take a stab at it yourself via my tree at

git://github.com/organizations/foss-for-synopsys-dwc-arc-processors/linux.git
arc-3.7-rc3-newport

TIA,
-Vineet

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches)
  2012-10-22 11:50   ` James Hogan
  2012-11-01 10:41     ` UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches) Vineet Gupta
@ 2012-11-08 12:38     ` David Howells
  2012-11-08 14:36     ` David Howells
  2012-11-08 15:07     ` David Howells
  3 siblings, 0 replies; 15+ messages in thread
From: David Howells @ 2012-11-08 12:38 UTC (permalink / raw)
  To: Vineet Gupta
  Cc: dhowells, James Hogan, torvalds, arnd, hpa, alan, fengguang.wu,
	linux-arch, linux-kernel

Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:

> I'm planning to submit ARC Linux kernel port (from Synopsys) for review
> on lkml and arch mailing lists. I already have a a 3.7-rc3 based kernel
> (modulo the arch UAPI split). What would be the best way to get the UAPI
> split done.

Do you want the headers to be split in the patches that add them, or would you
be happy with one patch stacked on the end to do the whole lot?  The last is
easiest for me to do.

However, I could 'uncommit' your patches using stgit, do the headers
individually and recommit them if you'd prefer.

David

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches)
  2012-10-22 11:50   ` James Hogan
  2012-11-01 10:41     ` UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches) Vineet Gupta
  2012-11-08 12:38     ` David Howells
@ 2012-11-08 14:36     ` David Howells
  2012-11-08 15:07     ` David Howells
  3 siblings, 0 replies; 15+ messages in thread
From: David Howells @ 2012-11-08 14:36 UTC (permalink / raw)
  To: Vineet Gupta
  Cc: dhowells, James Hogan, torvalds, arnd, hpa, alan, fengguang.wu,
	linux-arch, linux-kernel

Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:

> git://github.com/organizations/foss-for-synopsys-dwc-arc-processors/linux.git

That seems to be wrong.  I think you mean:

	git://github.com/foss-for-synopsys-dwc-arc-processors/linux.git

David

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches)
  2012-10-22 11:50   ` James Hogan
                       ` (2 preceding siblings ...)
  2012-11-08 14:36     ` David Howells
@ 2012-11-08 15:07     ` David Howells
  2012-11-08 18:21       ` Vineet Gupta
  2012-11-08 23:19       ` David Howells
  3 siblings, 2 replies; 15+ messages in thread
From: David Howells @ 2012-11-08 15:07 UTC (permalink / raw)
  To: Vineet Gupta
  Cc: dhowells, James Hogan, torvalds, arnd, hpa, alan, fengguang.wu,
	linux-arch, linux-kernel

Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:

> I'm planning to submit ARC Linux kernel port (from Synopsys) for review
> on lkml and arch mailing lists. I already have a a 3.7-rc3 based kernel
> (modulo the arch UAPI split). What would be the best way to get the UAPI
> split done.
> 
> Can you point me to the latest scripts and the best way to use them (so
> we have consistent automated split of headers). Otherwise if you like,
> you could take a stab at it yourself via my tree at
> 
> git://github.com/organizations/foss-for-synopsys-dwc-arc-processors/linux.git
> arc-3.7-rc3-newport

If you look at:

	http://git.infradead.org/users/dhowells/linux-headers.git/shortlog/refs/tags/disintegrate-arc-20121108

You'll find a branch with a patch that does the UAPI disintegration for you as
one piece.  I've merged your branch onto Linus's latest before doing the
disintegration.  If you'd prefer it directly on your branch, that should be
possible too.

David

^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches)
  2012-11-08 15:07     ` David Howells
@ 2012-11-08 18:21       ` Vineet Gupta
  2012-11-08 23:19       ` David Howells
  1 sibling, 0 replies; 15+ messages in thread
From: Vineet Gupta @ 2012-11-08 18:21 UTC (permalink / raw)
  To: David Howells
  Cc: James Hogan, torvalds, arnd, hpa, alan, fengguang.wu, linux-arch,
	linux-kernel, arc-linux-dev

> Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:

>> I'm planning to submit ARC Linux kernel port (from Synopsys) for review
>> on lkml and arch mailing lists. I already have a a 3.7-rc3 based kernel
>> (modulo the arch UAPI split). What would be the best way to get the UAPI
>> split done.
>>
>> Can you point me to the latest scripts and the best way to use them (so
>> we have consistent automated split of headers). Otherwise if you like,
>> you could take a stab at it yourself via my tree at
>>
>> git://github.com/organizations/foss-for-synopsys-dwc-arc-processors/linux.git
>> arc-3.7-rc3-newport

> If you look at:
>
>        http://git.infradead.org/users/dhowells/linux-headers.git/shortlog/refs/tags/disintegrate-arc-20121108
>
> You'll find a branch with a patch that does the UAPI disintegration for you as
> one piece.  I've merged your branch onto Linus's latest before doing the
> disintegration.  If you'd prefer it directly on your branch, that should be
> possible too.

Hi David,

Many thanks for doing this. Looking at the disintegrated headers, I have some observations, 
very likely due to shortcomings in my code, which need some clarifying.

While I'd done some of the prep work in my code such as splitting 
__KERNEL__ && __ASSEMBLY__ into two separate lines, majority of orig headers 
didn't have #ifdef __KERNEL__ guard despite the code not being meant for 
user-space ABI. Is that fundamental to UAPI split scripting because it seems to be 
causing setup.h to be in uapi despite seemingly being  kernel internal only.
OTOH the missing guards seem to be benign for several other headers (e.g. bug.h)
Also there's an empty UAPI header generated (tlb.h) - again very likely due to the 
missing guard.

Per you email from last week, When I ran the disintergrate-one.pl script myself I saw a
 whole bunch of empty UAPI files being generated with references in orig header.
I'm not sure what I'm doing wrong. 

For any ABI changes to headers per review of the new port on list (e.g. don't export pt_regs)
would mean moving the code manually from uapi to orig header - right. And if the file becomes
empty just nuke it completely.

How do you reckon we go about fixing these. I don't want to bother you multiple times
hence it would be best if I could reproduce this at my end.

thanks again for you help and time

-Vineet

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches)
  2012-11-08 15:07     ` David Howells
  2012-11-08 18:21       ` Vineet Gupta
@ 2012-11-08 23:19       ` David Howells
  2012-11-12 10:57         ` [arc-linux-dev] " Vineet Gupta
  2012-11-12 13:14         ` David Howells
  1 sibling, 2 replies; 15+ messages in thread
From: David Howells @ 2012-11-08 23:19 UTC (permalink / raw)
  To: Vineet Gupta
  Cc: dhowells, James Hogan, torvalds, arnd, hpa, alan, fengguang.wu,
	linux-arch, linux-kernel, arc-linux-dev

Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:

> While I'd done some of the prep work in my code such as splitting __KERNEL__
> && __ASSEMBLY__ into two separate lines, majority of orig headers didn't
> have #ifdef __KERNEL__ guard despite the code not being meant for user-space
> ABI. Is that fundamental to UAPI split scripting

Yes.  My scripts work purely along __KERNEL__ lines.  If there are no
__KERNEL__ markers and the header is marked for export, it is simply moved.

> because it seems to be causing setup.h to be in uapi despite seemingly being
> kernel internal only.

Check also include/uapi/asm-generic/Kbuild.asm.  That exports setup.h, whether
you think it should be exported or not.

Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:

> Per you email from last week, When I ran the disintergrate-one.pl script
> myself I saw a whole bunch of empty UAPI files being generated with
> references in orig header.  I'm not sure what I'm doing wrong.

Can you give an example of such a header?

> For any ABI changes to headers per review of the new port on list
> (e.g. don't export pt_regs) would mean moving the code manually from uapi to
> orig header - right. And if the file becomes empty just nuke it completely.

You can't necessarily remove a UAPI header completely.  Userspace may depend
on its existence, even if it gets no content from there.

> How do you reckon we go about fixing these. I don't want to bother you
> multiple times hence it would be best if I could reproduce this at my end.

The best advice I can give you without more specific examples is to compare
what's in your arch's headers to those of, say, hexagon or arm64.  Those are
recent additions and should be pretty clean as to what they contain.

David

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [arc-linux-dev] Re: UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches)
  2012-11-08 23:19       ` David Howells
@ 2012-11-12 10:57         ` Vineet Gupta
  2012-11-12 13:14         ` David Howells
  1 sibling, 0 replies; 15+ messages in thread
From: Vineet Gupta @ 2012-11-12 10:57 UTC (permalink / raw)
  To: arc-linux-dev
  Cc: David Howells, James Hogan, torvalds, arnd, hpa, alan,
	fengguang.wu, linux-arch, linux-kernel

On Friday 09 November 2012 04:49 AM, David Howells wrote:
> Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:
>
>> While I'd done some of the prep work in my code such as splitting __KERNEL__
>> && __ASSEMBLY__ into two separate lines, majority of orig headers didn't
>> have #ifdef __KERNEL__ guard despite the code not being meant for user-space
>> ABI. Is that fundamental to UAPI split scripting
> Yes.  My scripts work purely along __KERNEL__ lines.  If there are no
> __KERNEL__ markers and the header is marked for export, it is simply moved.

Understood.

>
>> because it seems to be causing setup.h to be in uapi despite seemingly being
>> kernel internal only.
> Check also include/uapi/asm-generic/Kbuild.asm.  That exports setup.h, whether
> you think it should be exported or not.

Correct. And if there's nothing to export in there the script will not
generate the empty uapi sibling.

>> Per you email from last week, When I ran the disintergrate-one.pl script
>> myself I saw a whole bunch of empty UAPI files being generated with
>> references in orig header.  I'm not sure what I'm doing wrong.
> Can you give an example of such a header?

tlb.h - despite having __KERNEL__ guard in orig file. Here's how I did it.

1. In my orig tree, I created arch/arc/include/uapi/asm/Kbuild, with
following 2 lines

# UAPI Header export list
include include/uapi/asm-generic/Kbuild.asm

2.  ./disintegrate-one.pl arch/arc/include/asm/tlb.h
arch/arc/include/uapi/asm/tlb.h

This generates a empty uapi/asm/tlb.h, a reference to it in asm/tlb.h
and is also exported from Kbuild.asm - all 3 of which are wrong.

But now that I think about it - I was wrong to call this script for
all/any arch headers. It should be done only for the ones in
include/uapi/asm-generic/Kbuild.asm or any specific ones that arch wants
to export (cachectl.h for our case).

>
>> For any ABI changes to headers per review of the new port on list
>> (e.g. don't export pt_regs) would mean moving the code manually from uapi to
>> orig header - right. And if the file becomes empty just nuke it completely.
> You can't necessarily remove a UAPI header completely.  Userspace may depend
> on its existence, even if it gets no content from there.
>
>> How do you reckon we go about fixing these. I don't want to bother you
>> multiple times hence it would be best if I could reproduce this at my end.
> The best advice I can give you without more specific examples is to compare
> what's in your arch's headers to those of, say, hexagon or arm64.  Those are
> recent additions and should be pretty clean as to what they contain.
>
> David


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [arc-linux-dev] Re: UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches)
  2012-11-08 23:19       ` David Howells
  2012-11-12 10:57         ` [arc-linux-dev] " Vineet Gupta
@ 2012-11-12 13:14         ` David Howells
  2012-11-14 13:01           ` James Hogan
  2012-11-14 16:28           ` David Howells
  1 sibling, 2 replies; 15+ messages in thread
From: David Howells @ 2012-11-12 13:14 UTC (permalink / raw)
  To: Vineet Gupta; +Cc: dhowells, arc-linux-dev, arnd, linux-arch, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1922 bytes --]

Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:

> >> Per you email from last week, When I ran the disintergrate-one.pl script
> >> myself I saw a whole bunch of empty UAPI files being generated with
> >> references in orig header.  I'm not sure what I'm doing wrong.
> > Can you give an example of such a header?
> 
> tlb.h - despite having __KERNEL__ guard in orig file. Here's how I did it.
> 
> 1. In my orig tree, I created arch/arc/include/uapi/asm/Kbuild, with
> following 2 lines
> 
> # UAPI Header export list
> include include/uapi/asm-generic/Kbuild.asm
> 
> 2.  ./disintegrate-one.pl arch/arc/include/asm/tlb.h
> arch/arc/include/uapi/asm/tlb.h
> 
> This generates a empty uapi/asm/tlb.h, a reference to it in asm/tlb.h
> and is also exported from Kbuild.asm - all 3 of which are wrong.

Actually, this is the correct operation - it's just that there's nothing in
tlb.h to export.  (Note that Kbuild.asm is not modified, but rather
uapi/asm/Kbuild.  asm/Kbuild would too, but there's no export line there to be
removed.)

However... tlb.h isn't exported in Kbuild.asm - nor is it exported in arc's
asm/Kbuild, so the script shouldn't be run on that.

> But now that I think about it - I was wrong to call this script for
> all/any arch headers. It should be done only for the ones in
> include/uapi/asm-generic/Kbuild.asm or any specific ones that arch wants
> to export (cachectl.h for our case).

Exactly so.  I should probably have mentioned that, but I've had it automated
for so long, that I don't think about it any more.  You should only call it
for arch headers

I've attached a script that I use to work out which files need disintegration
in a directory.  Run as:

	genfilelist.pl arch/arc/include/asm/

I get:

	byteorder.h
	cachectl.h
	page.h
	ptrace.h
	setup.h
	sigcontext.h
	signal.h
	swab.h
	unistd.h

as being all that you need to disintegrate.  Almost everything seems to be
generic.

David


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: genfilelist.pl --]
[-- Type: text/x-perl, Size: 1685 bytes --]

#!/usr/bin/perl -w
#
# Find all the UAPI files in the nominated directory
#

die "Need directory argument\n"
    if ($#ARGV == -1);

my $dir = $ARGV[0];
my $kbuild = $dir . "/Kbuild";

die "$kbuild not present"
    unless (-r "$dir/Kbuild");

#
# We assume that only Kbuild files in include directories are pertinent to
# determining which headers are UAPI headers.
#
my %headers = ();

opendir my $dh, $dir or die;
foreach $_ (readdir($dh)) {
    $headers{$_} = 1
	if ($_ =~ /[.]h$/ || $_ =~ /[.]agh$/ || $_ =~ /[.]inc$/);
}
closedir($dh) or die;

# Read the common arch list
open FD, '<include/uapi/asm-generic/Kbuild.asm' or die "open Kbuild.asm: $!\n";
my @kbuild_asm = <FD>;
close FD or die;

my %uapihdrs = ();

open FD, '<', $kbuild or die "open $kbuild: $!\n";
my @lines = <FD>;
close FD or die;

for (my $l = 0; $l <= $#lines; $l++) {
    my $line = $lines[$l];

    # parse out the blocks
    # - this may be split over multiple lines using backslashes
    my $block = $line;
  restart:
    $block =~ s@#.*$@@;
    $block =~ s@\s+$@@g;
    $block =~ s@\s+@ @g;

    if ($block =~ /^(.*)[\\]$/) {
	$l++;
	$block = $1 . $lines[$l];
	goto restart;
    }

    $block =~ s@\s+$@@g;
    $block =~ s@\s\s+@ @g;

    if ($block =~ m@^include include/asm-generic/Kbuild.asm@) {
	push @lines, @kbuild_asm;
    }

    if ($block =~ m@^header-y\s*[+:]?=\s*(.*)@ ||
	$block =~ m@^opt-header\s*[+:]?=\s*(.*)@ ||
	$block =~ m@^asm-headers\s*[+:]?=\s*(.*)@
	) {
	my $files = $1;
	next if ($block =~ m@[$][(]foreach@);
	foreach $h (grep m@[^/]$@, split /\s+/, $files) {
	    if (exists $headers{"$h"}) {
		$uapihdrs{"$h"} = 1;
	    }
	}
    }
}

print map { $_ . "\n"; } sort keys %uapihdrs;

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [arc-linux-dev] Re: UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches)
  2012-11-12 13:14         ` David Howells
@ 2012-11-14 13:01           ` James Hogan
  2012-11-14 16:28           ` David Howells
  1 sibling, 0 replies; 15+ messages in thread
From: James Hogan @ 2012-11-14 13:01 UTC (permalink / raw)
  To: David Howells; +Cc: Vineet Gupta, arnd, linux-arch, linux-kernel

Hi David,

The disintegration scripts strip out the #ifdef __KERNEL__ from the
headers in both uapi/ and the old directories. However there are still a
bunch of unexported headers through the tree which have #ifdef
__KERNEL__ in them, usually guarding the entire file (just grep
__KERNEL__ in arch/).

Is this something that you're already planning to eliminate? We have a
few in the metag tree too, and now that uapi/ is nicely separated I'm
not sure if it's worth removing the __KERNEL__ guards or keeping them to
match other architectures.

Thanks
James


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [arc-linux-dev] Re: UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches)
  2012-11-12 13:14         ` David Howells
  2012-11-14 13:01           ` James Hogan
@ 2012-11-14 16:28           ` David Howells
  1 sibling, 0 replies; 15+ messages in thread
From: David Howells @ 2012-11-14 16:28 UTC (permalink / raw)
  To: James Hogan; +Cc: dhowells, Vineet Gupta, arnd, linux-arch, linux-kernel

James Hogan <james.hogan@imgtec.com> wrote:

> The disintegration scripts strip out the #ifdef __KERNEL__ from the
> headers in both uapi/ and the old directories. However there are still a
> bunch of unexported headers through the tree which have #ifdef
> __KERNEL__ in them, usually guarding the entire file (just grep
> __KERNEL__ in arch/).
> 
> Is this something that you're already planning to eliminate? We have a
> few in the metag tree too, and now that uapi/ is nicely separated I'm
> not sure if it's worth removing the __KERNEL__ guards or keeping them to
> match other architectures.

I would like to remove the __KERNEL__ guards from KAPI files - they should not
be necessary there.

In the UAPI files, it will, unfortunately, be necessary to keep some of the
__KERNEL__ guards that remain.

David

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2012-11-14 16:29 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-02 18:36 [GIT PULL] User API Disintegrate: Preparatory patches David Howells
2012-10-04 17:12 ` Geert Uytterhoeven
2012-10-04 17:36 ` David Howells
2012-10-17  8:42 ` James Hogan
2012-10-22 11:50   ` James Hogan
2012-11-01 10:41     ` UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches) Vineet Gupta
2012-11-08 12:38     ` David Howells
2012-11-08 14:36     ` David Howells
2012-11-08 15:07     ` David Howells
2012-11-08 18:21       ` Vineet Gupta
2012-11-08 23:19       ` David Howells
2012-11-12 10:57         ` [arc-linux-dev] " Vineet Gupta
2012-11-12 13:14         ` David Howells
2012-11-14 13:01           ` James Hogan
2012-11-14 16:28           ` David Howells

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).