WSL2-Linux-Kernel/arch/arm
Al Viro 666547ff59 separate kernel- and userland-side msghdr
Kernel-side struct msghdr is (currently) using the same layout as
userland one, but it's not a one-to-one copy - even without considering
32bit compat issues, we have msg_iov, msg_name and msg_control copied
to kernel[1].  It's fairly localized, so we get away with a few functions
where that knowledge is needed (and we could shrink that set even
more).  Pretty much everything deals with the kernel-side variant and
the few places that want userland one just use a bunch of force-casts
to paper over the differences.

The thing is, kernel-side definition of struct msghdr is *not* exposed
in include/uapi - libc doesn't see it, etc.  So we can add struct user_msghdr,
with proper annotations and let the few places that ever deal with those
beasts use it for userland pointers.  Saner typechecking aside, that will
allow to change the layout of kernel-side msghdr - e.g. replace
msg_iov/msg_iovlen there with struct iov_iter, getting rid of the need
to modify the iovec as we copy data to/from it, etc.

We could introduce kernel_msghdr instead, but that would create much more
noise - the absolute majority of the instances would need to have the
type switched to kernel_msghdr and definition of struct msghdr in
include/linux/socket.h is not going to be seen by userland anyway.

This commit just introduces user_msghdr and switches the few places that
are dealing with userland-side msghdr to it.

[1] actually, it's even trickier than that - we copy msg_control for
sendmsg, but keep the userland address on recvmsg.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-11-19 16:22:59 -05:00
..
boot ARM: dts: zynq: Enable PL clocks for Parallella 2014-11-08 16:57:44 -08:00
common dma: edma: move device registration to platform code 2014-11-05 18:26:10 -08:00
configs The i.MX fixes for 3.18, 2nd round: 2014-11-04 20:37:25 -08:00
crypto
firmware
include ARM: enable bpf syscall 2014-10-29 00:18:20 +00:00
kernel separate kernel- and userland-side msghdr 2014-11-19 16:22:59 -05:00
kvm Second batch of changes for KVM/{arm,arm64} for 3.18 2014-10-18 14:32:31 -07:00
lib ARM: 8137/1: fix get_user BE behavior for target variable with size of 8 bytes 2014-09-12 17:38:59 +01:00
mach-at91 Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2014-10-14 09:22:26 +02:00
mach-axxia
mach-bcm Merge tag 'bcm63138-v4' of http://github.com/brcm/linux into next/soc 2014-09-25 23:50:02 +02:00
mach-berlin
mach-clps711x ARM: SoC platform changes for 3.18 2014-10-08 17:13:04 -04:00
mach-cns3xxx CNS3xxx: Fix PCIe read size limit. 2014-09-25 23:35:01 +02:00
mach-davinci ARM: SoC DT updates for 3.18 2014-10-08 17:22:23 -04:00
mach-dove
mach-ebsa110 kbuild: remove unnecessary variable initializaions 2014-10-02 13:55:02 +02:00
mach-efm32
mach-ep93xx kbuild: remove unnecessary variable initializaions 2014-10-02 13:55:02 +02:00
mach-exynos Samsung fixes for v3.18 2014-10-14 23:31:13 -07:00
mach-footbridge kbuild: remove unnecessary variable initializaions 2014-10-02 13:55:02 +02:00
mach-gemini
mach-highbank mailbox: rename pl320-ipc specific mailbox.h 2014-10-08 10:39:33 +05:30
mach-hisi ARM: hisi: depend on ARCH_MULTI_V7 2014-10-02 16:40:10 +02:00
mach-imx ARM: imx: clk-vf610: define PLL's clock tree 2014-11-04 13:40:14 +08:00
mach-integrator PCI changes for the v3.18 merge window: 2014-10-09 15:03:49 -04:00
mach-iop13xx kbuild: remove unnecessary variable initializaions 2014-10-02 13:55:02 +02:00
mach-iop32x kbuild: remove unnecessary variable initializaions 2014-10-02 13:55:02 +02:00
mach-iop33x kbuild: remove unnecessary variable initializaions 2014-10-02 13:55:02 +02:00
mach-ixp4xx ARM: ixp4xx: remove compilation warnings in io.h 2014-10-28 22:04:01 +01:00
mach-keystone
mach-ks8695 kbuild: remove unnecessary variable initializaions 2014-10-02 13:55:02 +02:00
mach-lpc32xx ARM: LPC32xx: Fix reset function 2014-09-10 17:25:14 +02:00
mach-mediatek
mach-meson ARM: meson: add basic support for MesonX SoCs 2014-09-25 17:34:42 +02:00
mach-mmp net: pxa168_eth: Fix providing of phy_interface mode on platform_data 2014-10-28 16:48:02 -04:00
mach-moxart
mach-msm
mach-mv78xx0
mach-mvebu cpufreq: cpu0: rename driver and internals to 'cpufreq_dt' 2014-10-03 15:37:54 +02:00
mach-mxs
mach-netx
mach-nomadik
mach-nspire
mach-omap1
mach-omap2 The i.MX fixes for 3.18, 2nd round: 2014-11-04 20:37:25 -08:00
mach-orion5x ARM: orion5x: Convert pr_warning to pr_warn 2014-09-13 21:29:21 +00:00
mach-picoxcell
mach-prima2
mach-pxa ARM: pxa: fix hang on startup with DEBUG_LL 2014-10-20 21:11:40 +02:00
mach-qcom
mach-realview
mach-rockchip ARM: rockchip: enable the AMBA bus 2014-09-02 22:27:26 +02:00
mach-rpc kbuild: remove unnecessary variable initializaions 2014-10-02 13:55:02 +02:00
mach-s3c24xx Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2014-10-14 09:22:26 +02:00
mach-s3c64xx Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2014-10-14 09:22:26 +02:00
mach-s5pv210 Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2014-10-14 09:22:26 +02:00
mach-sa1100 Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2014-10-14 09:22:26 +02:00
mach-shmobile Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-10-14 09:39:08 +02:00
mach-socfpga arm: socfpga: fix fetching cpu1start_addr for SMP 2014-10-21 14:04:14 -05:00
mach-spear ARM: spear: Remove references to PLAT_SPEAR_SINGLE 2014-09-05 13:33:41 +02:00
mach-sti
mach-sunxi ARM: sunxi: Remove sun4i reboot code from mach directory 2014-09-11 21:01:47 +02:00
mach-tegra
mach-u300 kbuild: remove unnecessary variable initializaions 2014-10-02 13:55:02 +02:00
mach-ux500
mach-versatile
mach-vexpress
mach-vt8500 arm, vt8500, LLVMLlinux: Use mcr instead of mcr% for mach-vt8500 2014-09-26 01:49:03 +02:00
mach-w90x900
mach-zynq ACPI and power management updates for 3.18-rc1 2014-10-09 16:07:43 -04:00
mm Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm 2014-11-02 12:56:20 -08:00
net net: bpf: arm: make hole-faulting more robust 2014-09-23 12:40:22 -04:00
nwfpe
oprofile
plat-iop kbuild: remove unnecessary variable initializaions 2014-10-02 13:55:02 +02:00
plat-omap Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2014-10-14 09:22:26 +02:00
plat-orion dsa: Replace mii_bus with a generic host device 2014-09-15 17:24:20 -04:00
plat-pxa ARM: pxa: ssp: provide platform_device_id for PXA3xx 2014-09-19 01:56:02 +08:00
plat-samsung Samsung fixes for v3.18 2014-10-14 23:31:13 -07:00
plat-versatile
tools
vfp
xen xen/arm: remove mach_to_phys rbtree 2014-09-11 18:11:53 +00:00
Kconfig xen: features and fixes for 3.18-rc0 2014-10-11 20:29:01 -04:00
Kconfig-nommu
Kconfig.debug ARM: pxa: fix hang on startup with DEBUG_LL 2014-10-20 21:11:40 +02:00
Makefile Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2014-10-14 09:22:26 +02:00