Commit Graph

19 Commits

Author SHA1 Message Date
Petri Gynther
c7cb7ae16c Merge android-4.9 (4.9.159) into android-msm-bluecross-4.9-lts
Merge 4.9.159 into android-4.9
Linux 4.9.159
    Revert "scsi: aic94xx: fix module loading"
  * uapi/if_ether.h: move __UAPI_DEF_ETHHDR libc define
      include/uapi/linux/if_ether.h
      include/uapi/linux/libc-compat.h
  * mm: stop leaking PageTables
      mm/memory.c
  * pinctrl: msm: fix gpio-hog related boot issues
      drivers/pinctrl/qcom/pinctrl-msm.c
    netfilter: nf_tables: fix mismatch in big-endian system
    usb: dwc2: Remove unnecessary kfree
    kaweth: use skb_cow_head() to deal with cloned skbs
    ch9200: use skb_cow_head() to deal with cloned skbs
    smsc95xx: Use skb_cow_head to deal with cloned skbs
    drm/i915: Prevent a race during I915_GEM_MMAP ioctl with WC set
    dm thin: fix bug where bio that overwrites thin block ignores FUA
    x86/a.out: Clear the dump structure initially
  * signal: Restore the stop PTRACE_EVENT_EXIT
      kernel/signal.c
    x86/platform/UV: Use efi_runtime_lock to serialise BIOS calls
    tracing/uprobes: Fix output for multiple string arguments
    alpha: Fix Eiger NR_IRQS to 128
    alpha: fix page fault handling for r16-r18 targets
    Input: elantech - enable 3rd button support on Fujitsu CELSIUS H780
    Input: bma150 - register input device after setting private data
    kvm: vmx: Fix entry number check for add_atomic_switch_msr()
  * ALSA: usb-audio: Fix implicit fb endpoint setup by quirk
      sound/usb/pcm.c
    ALSA: hda - Add quirk for HP EliteBook 840 G5
  * perf/x86: Add check_period PMU callback
      include/linux/perf_event.h
      kernel/events/core.c
  * perf/core: Fix impossible ring-buffer sizes warning
      kernel/events/ring_buffer.c
    Input: elan_i2c - add ACPI ID for touchpad in Lenovo V330-15ISK
    Revert "Input: elan_i2c - add ACPI ID for touchpad in ASUS Aspire F5-573G"
    perf report: Include partial stacks unwound with libdw
    cifs: Limit memory used by lock request calls to a page
    gpio: pl061: handle failed allocations
    ARM: dts: kirkwood: Fix polarity of GPIO fan lines
    ARM: dts: da850-lcdk: Correct the sound card name
    ARM: dts: da850-evm: Correct the sound card name
    drm/bridge: tc358767: fix output H/V syncs
    drm/bridge: tc358767: reject modes which require too much BW
    drm/bridge: tc358767: fix initial DP0/1_SRCCTRL value
    drm/bridge: tc358767: fix single lane configuration
    drm/bridge: tc358767: add defines for DP1_SRCCTRL & PHY_2LANE
  * cpufreq: check if policy is inactive early in __cpufreq_get()
      drivers/cpufreq/cpufreq.c
    ACPI: NUMA: Use correct type for printing addresses on i386-PAE
    bnx2x: disable GSO where gso_size is too big for hardware
  * net: create skb_gso_validate_mac_len()
      include/linux/skbuff.h
      net/core/skbuff.c
    ARM: fix the cockup in the previous patch
    ARM: ensure that processor vtables is not lost after boot
    ARM: spectre-v2: per-CPU vtables to work around big.Little systems
    ARM: add PROC_VTABLE and PROC_TABLE macros
    ARM: clean up per-processor check_bugs method call
    ARM: split out processor lookup
    ARM: make lookup_processor_type() non-__init
    ARM: 8810/1: vfp: Fix wrong assignement to ufp_exc
    ARM: 8797/1: spectre-v1.1: harden __copy_to_user
    ARM: 8796/1: spectre-v1,v1.1: provide helpers for address sanitization
    ARM: 8795/1: spectre-v1.1: use put_user() for __put_user()
    ARM: 8794/1: uaccess: Prevent speculative use of the current addr_limit
    ARM: 8793/1: signal: replace __put_user_error with __put_user
    ARM: 8792/1: oabi-compat: copy oabi events using __copy_to_user()
    ARM: 8791/1: vfp: use __copy_to_user() when saving VFP state
    ARM: 8789/1: signal: copy registers using __copy_to_user()
  * uapi/if_ether.h: prevent redefinition of struct ethhdr
      include/uapi/linux/if_ether.h
      include/uapi/linux/libc-compat.h
  * eeprom: at24: add support for 24c2048
      drivers/misc/eeprom/Kconfig
    dt-bindings: eeprom: at24: add "atmel,24c2048" compatible string
    BACKPORT: userfaultfd: shmem/hugetlbfs: only allow to register VM_MAYWRITE vmas
    ANDROID: cuttlefish_defconfig: Enable DEBUG_SET_MODULE_RONX
Merge 4.9.158 into android-4.9
Linux 4.9.158
  * Revert "exec: load_script: don't blindly truncate shebang string"
      fs/binfmt_script.c
Merge 4.9.157 into android-4.9
Linux 4.9.157
    batman-adv: Force mac header to start of data on xmit
    batman-adv: Avoid WARN on net_device without parent in netns
  * xfrm: refine validation of template and selector families
      net/xfrm/xfrm_user.c
    libceph: avoid KEEPALIVE_PENDING races in ceph_con_keepalive()
  * Revert "cifs: In Kconfig CONFIG_CIFS_POSIX needs depends on legacy (insecure cifs)"
      fs/cifs/Kconfig
  * HID: debug: fix the ring buffer implementation
      drivers/hid/hid-debug.c
      include/linux/hid-debug.h
    nfsd4: catch some false session retries
    nfsd4: fix cached replies to solo SEQUENCE compounds
    drm/vmwgfx: Return error code from vmw_execbuf_copy_fence_user
    drm/vmwgfx: Fix setting of dma masks
  * drm/modes: Prevent division by zero htotal
      drivers/gpu/drm/drm_modes.c
    mac80211: ensure that mgmt tx skbs have tailroom for encryption
    ARM: tango: Improve ARCH_MULTIPLATFORM compatibility
    ARM: iop32x/n2100: fix PCI IRQ mapping
    MIPS: VDSO: Include $(ccflags-vdso) in o32,n32 .lds builds
    MIPS: OCTEON: don't set octeon_dma_bar_type if PCI is disabled
    mips: cm: reprime error cause
  * debugfs: fix debugfs_rename parameter checking
      fs/debugfs/inode.c
    samples: mei: use /dev/mei0 instead of /dev/mei
    misc: vexpress: Off by one in vexpress_syscfg_exec()
  * signal: Better detection of synchronous signals
      kernel/signal.c
  * signal: Always notice exiting tasks
      kernel/signal.c
    iio: chemical: atlas-ph-sensor: correct IIO_TEMP values to millicelsius
    mtd: rawnand: gpmi: fix MX28 bus master lockup problem
    ANDROID: cuttlefish: enable CONFIG_NET_SCH_NETEM=y
    Add XFRM-I to cuttlefish defconfigs
    ANDROID: Move from clang r346389b to r349610.

Change-Id: I000fc05db9aa733cfa7027025d690d5e0fd0e683
Signed-off-by: Petri Gynther <pgynther@google.com>
2019-02-22 15:16:01 -08:00
Hauke Mehrtens
162a93c20d uapi/if_ether.h: move __UAPI_DEF_ETHHDR libc define
commit da360299b6734135a5f66d7db458dcc7801c826a upstream.

This fixes a compile problem of some user space applications by not
including linux/libc-compat.h in uapi/if_ether.h.

linux/libc-compat.h checks which "features" the header files, included
from the libc, provide to make the Linux kernel uapi header files only
provide no conflicting structures and enums. If a user application mixes
kernel headers and libc headers it could happen that linux/libc-compat.h
gets included too early where not all other libc headers are included
yet. Then the linux/libc-compat.h would not prevent all the
redefinitions and we run into compile problems.
This patch removes the include of linux/libc-compat.h from
uapi/if_ether.h to fix the recently introduced case, but not all as this
is more or less impossible.

It is no problem to do the check directly in the if_ether.h file and not
in libc-compat.h as this does not need any fancy glibc header detection
as glibc never provided struct ethhdr and should define
__UAPI_DEF_ETHHDR by them self when they will provide this.

The following test program did not compile correctly any more:

#include <linux/if_ether.h>
#include <netinet/in.h>
#include <linux/in.h>

int main(void)
{
	return 0;
}

Fixes: 6926e041a892 ("uapi/if_ether.h: prevent redefinition of struct ethhdr")
Reported-by: Guillaume Nault <g.nault@alphalink.fr>
Cc: <stable@vger.kernel.org> # 4.15
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-20 10:18:35 +01:00
Hauke Mehrtens
0432fed9f4 uapi/if_ether.h: prevent redefinition of struct ethhdr
commit 6926e041a8920c8ec27e4e155efa760aa01551fd upstream.

Musl provides its own ethhdr struct definition. Add a guard to prevent
its definition of the appropriate musl header has already been included.

glibc does not implement this header, but when glibc will implement this
they can just define __UAPI_DEF_ETHHDR 0 to make it work with the
kernel.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-02-20 10:18:25 +01:00
Petri Gynther
b6fb66302e Merge 4.9.105 into android-msm-bluecross-4.9-lts
Linux 4.9.105
  * Revert "vti4: Don't override MTU passed on link creation via IFLA_MTU"
      net/ipv4/ip_vti.c
Linux 4.9.104
    kdb: make "mdr" command repeat
  * pinctrl: msm: Use dynamic GPIO numbering
      drivers/pinctrl/qcom/pinctrl-msm.c
  * regulator: of: Add a missing 'of_node_put()' in an error handling path of 'of_regulator_match()'
      drivers/regulator/of_regulator.c
    ARM: dts: porter: Fix HDMI output routing
    ARM: dts: imx7d: cl-som-imx7: fix pinctrl_enet
  * regmap: Correct comparison in regmap_cached
      drivers/base/regmap/regmap.c
  * netlabel: If PF_INET6, check sk_buff ip header version
      net/netlabel/netlabel_unlabeled.c
    selftests/net: fixes psock_fanout eBPF test case
    perf report: Fix memory corruption in --branch-history mode --branch-history
    perf tests: Use arch__compare_symbol_names to compare symbols
    x86/apic: Set up through-local-APIC mode on the boot CPU if 'noapic' specified
    drm/rockchip: Respect page offset for PRIME mmap calls
    MIPS: Octeon: Fix logging messages with spurious periods after newlines
    pinctrl: sh-pfc: r8a7796: Fix MOD_SEL register pin assignment for SSI pins group
  * rcu: Call touch_nmi_watchdog() while printing stall warnings
      kernel/rcu/tree_plugin.h
  * audit: return on memory error to avoid null pointer dereference
      kernel/audit.c
    ARM: dts: bcm283x: Fix probing of bcm2835-i2s
    udf: Provide saner default for invalid uid / gid
  * PCI: Add function 1 DMA alias quirk for Marvell 88SE9220
      drivers/pci/quirks.c
  * cpufreq: Reorder cpufreq_online() error code path
      drivers/cpufreq/cpufreq.c
    net: stmmac: ensure that the MSS desc is the last desc to set the own bit
    net: stmmac: ensure that the device has released ownership before reading data
    dmaengine: qcom: bam_dma: get num-channels and num-ees from dt
    hwrng: stm32 - add reset during probe
    enic: enable rq before updating rq descriptors
    dmaengine: rcar-dmac: Check the done lists in rcar_dmac_chan_get_residue()
    dmaengine: pl330: fix a race condition in case of threaded irqs
    ALSA: vmaster: Propagate slave error
    x86/devicetree: Fix device IRQ settings in DT
    x86/devicetree: Initialize device tree before using it
    gfs2: Fix fallocate chunk size
    soc: qcom: wcnss_ctrl: Fix increment in NV upload
    arm64: dts: qcom: Fix SPI5 config on MSM8996
    perf/x86/intel: Fix event update for auto-reload
    perf/x86/intel: Fix large period handling on Broadwell CPUs
    cdrom: do not call check_disk_change() inside cdrom_open()
    perf/x86/intel: Properly save/restore the PMU state in the NMI handler
    hwmon: (pmbus/adm1275) Accept negative page register values
    hwmon: (pmbus/max8688) Accept negative page register values
    drm/panel: simple: Fix the bus format for the Ontat panel
  * perf/core: Fix perf_output_read_group()
      kernel/events/core.c
  * f2fs: fix to check extent cache in f2fs_drop_extent_tree
      fs/f2fs/extent_cache.c
    powerpc: Add missing prototype for arch_irq_work_raise()
    ipmi_ssif: Fix kernel panic at msg_done_handler
  * PCI: Restore config space on runtime resume despite being unbound
      drivers/pci/pci-driver.c
    MIPS: ath79: Fix AR724X_PLL_REG_PCIE_CONFIG offset
    spi: bcm-qspi: fIX some error handling paths
    regulator: gpio: Fix some error handling paths in 'gpio_regulator_probe()'
    IB/core: Honor port_num while resolving GID for IB link layer
    perf stat: Fix core dump when flag T is used
    perf top: Fix top.call-graph config option reading
    KVM: lapic: stop advertising DIRECTED_EOI when in-kernel IOAPIC is in use
    i2c: mv64xxx: Apply errata delay only in standard mode
    cxgb4: Fix queue free path of ULD drivers
    ACPICA: acpi: acpica: fix acpi operand cache leak in nseval.c
    ACPICA: Events: add a return on failure from acpi_hw_register_read
    bcache: quit dc->writeback_thread when BCACHE_DEV_DETACHING is set
    zorro: Set up z->dev.dma_mask for the DMA API
    cpufreq: cppc_cpufreq: Fix cppc_cpufreq_init() failure path
    arm: dts: socfpga: fix GIC PPI warning
    virtio-net: Fix operstate for virtio when no VIRTIO_NET_F_STATUS
    ima: Fallback to the builtin hash algorithm
    cxgb4: Setup FW queues before registering netdev
    ath10k: Fix kernel panic while using worker (ath10k_sta_rc_update_wk)
    net/mlx5: Protect from command bit overflow
    selftests: Print the test we're running to /dev/kmsg
    tools/thermal: tmon: fix for segfault
    powerpc/perf: Fix kernel address leak via sampling registers
    powerpc/perf: Prevent kernel address leak to userspace via BHRB buffer
    hwmon: (nct6775) Fix writing pwmX_mode
    parisc/pci: Switch LBA PCI bus from Hard Fail to Soft Fail mode
    m68k: set dma and coherent masks for platform FEC ethernets
    powerpc/mpic: Check if cpu_possible() in mpic_physmask()
    ACPI: acpi_pad: Fix memory leak in power saving threads
    drivers: macintosh: rack-meter: really fix bogus memsets
    xen/acpi: off by one in read_acpi_id()
    rxrpc: Don't treat call aborts as conn aborts
    rxrpc: Fix Tx ring annotation after initial Tx failure
    btrfs: fix lockdep splat in btrfs_alloc_subvolume_writers
    Btrfs: fix copy_items() return value when logging an inode
    btrfs: tests/qgroup: Fix wrong tree backref level
    net: bgmac: Fix endian access in bgmac_dma_tx_ring_free()
    sparc64: Make atomic_xchg() an inline function rather than a macro.
    fscache: Fix hanging wait on page discarded by writeback
    KVM: VMX: raise internal error for exception during invalid protected mode state
  * sched/rt: Fix rq->clock_update_flags < RQCF_ACT_SKIP warning
      kernel/sched/rt.c
    ocfs2/dlm: don't handle migrate lockres if already in shutdown
    btrfs: Fix possible softlock on single core machines
    Btrfs: fix NULL pointer dereference in log_dir_items
    Btrfs: bail out on error during replay_dir_deletes
  * mm: fix races between address_space dereference and free in page_evicatable
      mm/vmscan.c
    mm/ksm: fix interaction with THP
    dp83640: Ensure against premature access to PHY registers after reset
    cpufreq: CPPC: Initialize shared perf capabilities of CPUs
    Force log to disk before reading the AGF during a fstrim
    sr: get/drop reference to device in revalidate and check_events
  * swap: divide-by-zero when zero length swap file on ssd
      mm/swapfile.c
  * fs/proc/proc_sysctl.c: fix potential page fault while unregistering sysctl table
      fs/proc/proc_sysctl.c
    x86/mm: Do not forbid _PAGE_RW before init for __ro_after_init
    x86/pgtable: Don't set huge PUD/PMD on non-leaf entries
    nvme: don't send keep-alives to the discovery controller
    sh: fix debug trap failure to process signals before return to user
    net: mvneta: fix enable of all initialized RXQs
  * net: Fix untag for vlan packets without ethernet header
      net/core/skbuff.c
    mm/kmemleak.c: wait for scan completion before disabling free
    builddeb: Fix header package regarding dtc source links
    llc: properly handle dev_queue_xmit() return value
    perf/x86/intel: Fix linear IP of PEBS real_ip on Haswell and later CPUs
    net: qmi_wwan: add BroadMobi BM806U 2020:2033
    ARM: 8748/1: mm: Define vdso_start, vdso_end as array
    batman-adv: fix packet loss for broadcasted DHCP packets to a server
    batman-adv: fix multicast-via-unicast transmission with AP isolation
    selftests: ftrace: Add a testcase for probepoint
    selftests: ftrace: Add a testcase for string type with kprobe_event
    selftests: ftrace: Add probe event argument syntax testcase
    mm, thp: do not cause memcg oom for thp
    mm/mempolicy.c: avoid use uninitialized preferred_node
    RDMA/qedr: Fix rc initialization on CNQ allocation failure
    RDMA/qedr: fix QP's ack timeout configuration
    RDMA/ucma: Correct option size check using optlen
    kbuild: make scripts/adjust_autoksyms.sh robust against timestamp races
    brcmfmac: Fix check for ISO3166 code
  * perf/cgroup: Fix child event counting bug
      kernel/events/core.c
  * vti4: Don't override MTU passed on link creation via IFLA_MTU
      net/ipv4/ip_vti.c
  * vti4: Don't count header length twice on tunnel setup
      net/ipv4/ip_vti.c
    batman-adv: Fix skbuff rcsum on packet reroute
    batman-adv: fix header size check in batadv_dbg_arp()
  * net: Fix vlan untag for bridge and vlan_dev with reorder_hdr off
      include/uapi/linux/if_ether.h
      net/core/skbuff.c
    drm/imx: move arming of the vblank event to atomic_flush
    sunvnet: does not support GSO for sctp
  * ipv4: lock mtu in fnhe when received PMTU < net.ipv4.route.min_pmtu
      include/net/ip.h
      include/net/ip_fib.h
      include/net/route.h
      net/ipv4/route.c
      net/ipv4/xfrm4_policy.c
  * workqueue: use put_device() instead of kfree()
      kernel/workqueue.c
    bnxt_en: Check valid VNIC ID in bnxt_hwrm_vnic_set_tpa().
  * netfilter: ebtables: fix erroneous reject of last rule
      net/bridge/netfilter/ebtables.c
    dmaengine: mv_xor_v2: Fix clock resource by adding a register clock
  * arm64: Relax ARM_SMCCC_ARCH_WORKAROUND_1 discovery
      arch/arm64/kernel/cpu_errata.c
    xen: xenbus: use put_device() instead of kfree()
    IB/core: Fix possible crash to access NULL netdev
    net: smsc911x: Fix unload crash when link is up
    net: qcom/emac: Use proper free methods during TX
    fsl/fman: avoid sleeping in atomic context while adding an address
    fbdev: Fixing arbitrary kernel leak in case FBIOGETCMAP_SPARC in sbusfb_ioctl_helper().
    IB/mlx5: Fix an error code in __mlx5_ib_modify_qp()
    IB/mlx4: Include GID type when deleting GIDs from HW table under RoCE
    IB/mlx4: Fix corruption of RoCEv2 IPv4 GIDs
    RDMA/qedr: Fix iWARP write and send with immediate
    RDMA/qedr: Fix kernel panic when running fio over NFSoRDMA
    ia64/err-inject: Use get_user_pages_fast()
    e1000e: allocate ring descriptors with dma_zalloc_coherent
    e1000e: Fix check_for_link return value with autoneg off
    batman-adv: Fix multicast packet loss with a single WANT_ALL_IPV4/6 flag
    watchdog: sbsa: use 32-bit read for WCV
    watchdog: f71808e_wdt: Fix magic close handling
    iwlwifi: mvm: fix TX of CCMP 256
    KVM: PPC: Book3S HV: Fix VRMA initialization with 2MB or 1GB memory backing
    selftests/powerpc: Skip the subpage_prot tests if the syscall is unavailable
    Btrfs: send, fix issuing write op when processing hole in no data mode
    drm/sun4i: Fix dclk_set_phase
    xen/pirq: fix error path cleanup when binding MSIs
    nvmet: fix PSDT field check in command format
    net/tcp/illinois: replace broken algorithm reference link
    gianfar: Fix Rx byte accounting for ndev stats
    powerpc/boot: Fix random libfdt related build errors
    ARM: dts: NSP: Fix amount of RAM on BCM958625HR
  * sit: fix IFLA_MTU ignored on NEWLINK
      net/ipv6/sit.c
  * ip6_tunnel: fix IFLA_MTU ignored on NEWLINK
      net/ipv6/ip6_tunnel.c
    bcache: fix kcrashes with fio in RAID5 backend dev
    dmaengine: rcar-dmac: fix max_chunk_size for R-Car Gen3
    virtio-gpu: fix ioctl and expose the fixed status to userspace.
    r8152: fix tx packets accounting
    qrtr: add MODULE_ALIAS macro to smd
    ARM: orion5x: Revert commit 4904dbda41.
    ceph: fix dentry leak when failing to init debugfs
    clocksource/drivers/fsl_ftm_timer: Fix error return checking
    nvme-pci: Fix nvme queue cleanup if IRQ setup fails
    batman-adv: Fix netlink dumping of BLA backbones
    batman-adv: Fix netlink dumping of BLA claims
    batman-adv: Ignore invalid batadv_v_gw during netlink send
    batman-adv: Ignore invalid batadv_iv_gw during netlink send
  * netfilter: ebtables: convert BUG_ONs to WARN_ONs
      net/bridge/netfilter/ebtables.c
    batman-adv: invalidate checksum on fragment reassembly
    batman-adv: fix packet checksum in receive path
    md/raid1: fix NULL pointer dereference
    md: fix a potential deadlock of raid5/raid10 reshape
  * fs: dcache: Use READ_ONCE when accessing i_dir_seq
      fs/dcache.c
  * fs: dcache: Avoid livelock between d_alloc_parallel and __d_add
      fs/dcache.c
  * kvm: fix warning for CONFIG_HAVE_KVM_EVENTFD builds
      include/linux/kvm_host.h
    macvlan: fix use-after-free in macvlan_common_newlink()
  * arm64: fix unwind_frame() for filtered out fn for function graph tracing
      arch/arm64/include/asm/stacktrace.h
      arch/arm64/kernel/stacktrace.c
      arch/arm64/kernel/time.c
    mac80211: drop frames with unexpected DS bits from fast-rx to slow path
    x86/topology: Update the 'cpu cores' field in /proc/cpuinfo correctly across CPU hotplug operations
    locking/xchg/alpha: Fix xchg() and cmpxchg() memory ordering bugs
    integrity/security: fix digsig.c build error with header file
  * regulatory: add NUL to request alpha2
      include/net/regulatory.h
    smsc75xx: fix smsc75xx_set_features()
    ARM: OMAP: Fix dmtimer init for omap1
  * PKCS#7: fix direct verification of SignerInfo signature
      crypto/asymmetric_keys/pkcs7_trust.c
    s390/cio: clear timer when terminating driver I/O
    s390/cio: fix return code after missing interrupt
    s390/cio: fix ccw_device_start_timeout API
    powerpc/bpf/jit: Fix 32-bit JIT for seccomp_data access
    kernel/relay.c: limit kmalloc size to KMALLOC_MAX_SIZE
    md: raid5: avoid string overflow warning
    locking/xchg/alpha: Add unconditional memory barrier to cmpxchg()
    drm/exynos: fix comparison to bitshift when dealing with a mask
    drm/exynos: g2d: use monotonic timestamps
    md raid10: fix NULL deference in handle_write_completed()
    mac80211: Do not disconnect on invalid operating class
    mac80211: fix calling sleeping function in atomic context
    mac80211: fix a possible leak of station stats
    mac80211: round IEEE80211_TX_STATUS_HEADROOM up to multiple of 4
    rxrpc: Work around usercopy check
    NFC: llcp: Limit size of SDP URI
    iwlwifi: mvm: always init rs with 20mhz bandwidth rates
    iwlwifi: mvm: fix security bug in PN checking
    ibmvnic: Free RX socket buffer in case of adapter error
    ARM: OMAP1: clock: Fix debugfs_create_*() usage
    ARM: OMAP3: Fix prm wake interrupt for resume
    ARM: OMAP2+: timer: fix a kmemleak caused in omap_get_timer_dt
    selftests: memfd: add config fragment for fuse
    selftests: pstore: Adding config fragment CONFIG_PSTORE_RAM=m
    libata: Fix compile warning with ATA_DEBUG enabled
  * ptr_ring: prevent integer overflow when calculating size
      include/linux/ptr_ring.h
    ARC: Fix malformed ARC_EMUL_UNALIGNED default
  * irqchip/gic-v3: Change pr_debug message to pr_devel
      drivers/irqchip/irq-gic-v3.c
  * cpumask: Make for_each_cpu_wrap() available on UP as well
      include/linux/cpumask.h
  * irqchip/gic-v3: Ignore disabled ITS nodes
      drivers/irqchip/irq-gic-v3-its-pci-msi.c
      drivers/irqchip/irq-gic-v3-its-platform-msi.c
      drivers/irqchip/irq-gic-v3-its.c
    locking/qspinlock: Ensure node->count is updated before initialising node
    vfs/proc/kcore, x86/mm/kcore: Fix SMAP fault when dumping vsyscall user page
    bpf: fix rlimit in reuseport net selftest
    tools/libbpf: handle issues with bpf ELF objects containing .eh_frames
    bcache: return attach error when no cache set exist
    bcache: fix for data collapse after re-attaching an attached device
    bcache: fix for allocator and register thread race
    bcache: properly set task state in bch_writeback_thread()
    cifs: silence compiler warnings showing up with gcc-8.0.0
  * proc: fix /proc/*/map_files lookup
      fs/proc/base.c
  * arm64: spinlock: Fix theoretical trylock() A-B-A with LSE atomics
      arch/arm64/include/asm/spinlock.h
    RDS: IB: Fix null pointer issue
    xen/grant-table: Use put_page instead of free_page
    xen-netfront: Fix race between device setup and open
    MIPS: TXx9: use IS_BUILTIN() for CONFIG_LEDS_CLASS
    MIPS: generic: Fix machine compatible matching
    bpf: fix selftests/bpf test_kmod.sh failure when CONFIG_BPF_JIT_ALWAYS_ON=y
    ACPI / scan: Use acpi_bus_get_status() to initialize ACPI_TYPE_DEVICE devs
    ACPI: processor_perflib: Do not send _PPC change notification if not ready
    firmware: dmi_scan: Fix handling of empty DMI strings
  * x86/power: Fix swsusp_arch_resume prototype
      include/linux/suspend.h
      kernel/power/power.h
  * netfilter: ipv6: nf_defrag: Kill frag queue on RFC2460 failure
      net/ipv6/netfilter/nf_conntrack_reasm.c
    drm/nouveau/pmu/fuc: don't use movw directly anymore
    IB/ipoib: Fix for potential no-carrier state
    openvswitch: Remove padding from packet before L3+ conntrack processing
  * mm/fadvise: discard partial page if endbyte is also EOF
      mm/fadvise.c
  * mm: pin address_space before dereferencing it while isolating an LRU page
      mm/vmscan.c
    mm: thp: use down_read_trylock() in khugepaged to avoid long block
    sparc64: update pmdp_invalidate() to return old pmd value
  * asm-generic: provide generic_pmdp_establish()
      include/asm-generic/pgtable.h
    mm/mempolicy: add nodes_empty check in SYSC_migrate_pages
    mm/mempolicy: fix the check of nodemask from user
    ocfs2: return error when we attempt to access a dirty bh in jbd2
    ocfs2/acl: use 'ip_xattr_sem' to protect getting extended attribute
    ocfs2: return -EROFS to mount.ocfs2 if inode block is invalid
    kvm: Map PFN-type memory regions as writable (if possible)
    tcp_nv: fix potential integer overflow in tcpnv_acked
    gianfar: prevent integer wrapping in the rx handler
    ntb_transport: Fix bug with max_mw_size parameter
    RDMA/mlx5: Avoid memory leak in case of XRCD dealloc failure
    powerpc/numa: Ensure nodes initialized for hotplug
    powerpc/numa: Use ibm,max-associativity-domains to discover possible nodes
    jffs2: Fix use-after-free bug in jffs2_iget()'s error handling path
  * device property: Define type of PROPERTY_ENRTY_*() macros
      include/linux/property.h
    fm10k: fix "failed to kill vid" message for VF
    HID: roccat: prevent an out of bounds read in kovaplus_profile_activated()
    btrfs: fail mount when sb flag is not in BTRFS_SUPER_FLAG_SUPP
    Btrfs: fix scrub to repair raid6 corruption
    btrfs: Fix out of bounds access in btrfs_search_slot
    Btrfs: set plug for fsync
    ipmi/powernv: Fix error return code in ipmi_powernv_probe()
    mac80211_hwsim: fix possible memory leak in hwsim_new_radio_nl()
  * kconfig: Fix expr_free() E_NOT leak
      scripts/kconfig/expr.c
  * kconfig: Fix automatic menu creation mem leak
      scripts/kconfig/menu.c
    kconfig: Don't leak main menus during parsing
    watchdog: sp5100_tco: Fix watchdog disable bit
    nfs: Do not convert nfs_idmap_cache_timeout to jiffies
    net: stmmac: dwmac-meson8b: propagate rate changes to the parent clock
    net: stmmac: dwmac-meson8b: fix setting the RGMII TX clock on Meson8b
    dm thin: fix documentation relative to low water mark threshold
    iommu/vt-d: Use domain instead of cache fetching
    perf record: Fix failed memory allocation for get_cpuid_str
    tools lib traceevent: Fix get_field_str() for dynamic strings
    perf callchain: Fix attr.sample_max_stack setting
    tools lib traceevent: Simplify pointer print logic and fix %pF
    i40iw: Zero-out consumer key on allocate stag for FMR
    Input: psmouse - fix Synaptics detection when protocol is disabled
  * PCI: Add function 1 DMA alias quirk for Marvell 9128
      drivers/pci/quirks.c
  * tracing/hrtimer: Fix tracing bugs by taking all clock bases and modes into account
      include/trace/events/timer.h
  * netfilter: ipv6: nf_defrag: Pass on packets to stack per RFC2460
      net/ipv6/netfilter/nf_conntrack_reasm.c
    kvm: x86: fix KVM_XEN_HVM_CONFIG ioctl
  * ALSA: hda - Use IS_REACHABLE() for dependency on input
      sound/pci/hda/Kconfig
    NFSv4: always set NFS_LOCK_LOST when a lock is lost.
    x86/tsc: Allow TSC calibration without PIT
    firewire-ohci: work around oversized DMA reads on JMicron controllers
    kvm: x86: IA32_ARCH_CAPABILITIES is always supported
    KVM: x86: Update cpuid properly when CR4.OSXAVE or CR4.PKE is changed
    KVM: s390: vsie: fix < 8k check for the itdba
    KVM/VMX: Expose SSBD properly to guests
  * kernel/signal.c: avoid undefined behaviour in kill_something_info
      kernel/signal.c
  * kernel/sys.c: fix potential Spectre v1 issue
      kernel/sys.c
    kasan: fix memory hotplug during boot
    ipc/shm: fix shmat() nil address after round-down when remapping
    Revert "ipc/shm: Fix shmat mmap nil-page protection"
    IB/hfi1: Use after free race condition in send context error path
    drm/vmwgfx: Fix 32-bit VMW_PORT_HB_[IN|OUT] macros
    xen-swiotlb: fix the check condition for xen_swiotlb_free_coherent
    libata: blacklist Micron 500IT SSD with MU01 firmware
    libata: Blacklist some Sandisk SSDs for NCQ
    mmc: sdhci-iproc: fix 32bit writes for TRANSFER_MODE register
    mmc: sdhci-iproc: remove hard coded mmc cap 1.8v
  * do d_instantiate/unlock_new_inode combinations safely
      fs/dcache.c
      fs/ecryptfs/inode.c
      fs/ext4/namei.c
      fs/f2fs/namei.c
      include/linux/dcache.h
  * ALSA: timer: Fix pause event notification
      sound/core/timer.c
  * aio: fix io_destroy(2) vs. lookup_ioctx() race
      fs/aio.c
    affs_lookup(): close a race with affs_remove_link()
    KVM: Fix spelling mistake: "cop_unsuable" -> "cop_unusable"
    MIPS: Fix ptrace(2) PTRACE_PEEKUSR and PTRACE_POKEUSR accesses to o32 FGRs
    MIPS: ptrace: Expose FIR register through FP regset
    MIPS: c-r4k: Fix data corruption related to cache coherence

Change-Id: If0f8043628c301383fa0ba2a9a59f43109cf9108
Signed-off-by: Petri Gynther <pgynther@google.com>
2018-08-24 23:21:41 -07:00
Toshiaki Makita
58df28952c net: Fix vlan untag for bridge and vlan_dev with reorder_hdr off
[ Upstream commit 4bbb3e0e8239f9079bf1fe20b3c0cb598714ae61 ]

When we have a bridge with vlan_filtering on and a vlan device on top of
it, packets would be corrupted in skb_vlan_untag() called from
br_dev_xmit().

The problem sits in skb_reorder_vlan_header() used in skb_vlan_untag(),
which makes use of skb->mac_len. In this function mac_len is meant for
handling rx path with vlan devices with reorder_header disabled, but in
tx path mac_len is typically 0 and cannot be used, which is the problem
in this case.

The current code even does not properly handle rx path (skb_vlan_untag()
called from __netif_receive_skb_core()) with reorder_header off actually.

In rx path single tag case, it works as follows:

- Before skb_reorder_vlan_header()

 mac_header                                data
   v                                        v
   +-------------------+-------------+------+----
   |        ETH        |    VLAN     | ETH  |
   |       ADDRS       | TPID | TCI  | TYPE |
   +-------------------+-------------+------+----
   <-------- mac_len --------->
                       <------------->
                        to be removed

- After skb_reorder_vlan_header()

            mac_header                     data
                 v                          v
                 +-------------------+------+----
                 |        ETH        | ETH  |
                 |       ADDRS       | TYPE |
                 +-------------------+------+----
                 <-------- mac_len --------->

This is ok, but in rx double tag case, it corrupts packets:

- Before skb_reorder_vlan_header()

 mac_header                                              data
   v                                                      v
   +-------------------+-------------+-------------+------+----
   |        ETH        |    VLAN     |    VLAN     | ETH  |
   |       ADDRS       | TPID | TCI  | TPID | TCI  | TYPE |
   +-------------------+-------------+-------------+------+----
   <--------------- mac_len ---------------->
                                     <------------->
                                    should be removed
                       <--------------------------->
                         actually will be removed

- After skb_reorder_vlan_header()

            mac_header                                   data
                 v                                        v
                               +-------------------+------+----
                               |        ETH        | ETH  |
                               |       ADDRS       | TYPE |
                               +-------------------+------+----
                 <--------------- mac_len ---------------->

So, two of vlan tags are both removed while only inner one should be
removed and mac_header (and mac_len) is broken.

skb_vlan_untag() is meant for removing the vlan header at (skb->data - 2),
so use skb->data and skb->mac_header to calculate the right offset.

Reported-by: Brandon Carpenter <brandon.carpenter@cypherpath.com>
Fixes: a6e18ff111 ("vlan: Fix untag operations of stacked vlans with REORDER_HEADER off")
Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-05-30 07:50:37 +02:00
Subash Abhinov Kasiviswanathan
2139ce8a5c net: rmnet_data: Add snapshot of rmnet_data driver
This is a snapshot of the rmnet_data driver taken as of msm-4.4.
commit 5da00923b1544ba ("rmnet_data: Changing format specifier to
%pK").

Additionally, fix some style issues reported by checkpatch.

CRs-Fixed: 1078373
Change-Id: Idb2df22e61803e04a01db64ea5e9d1e93ae92e09
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2016-11-01 20:02:26 -06:00
Gavin Shan
6389eaa7fa net/ncsi: NCSI command packet handler
The NCSI command packets are sent from MC (Management Controller)
to remote end. They are used for multiple purposes: probe existing
NCSI package/channel, retrieve NCSI channel's capability, configure
NCSI channel etc.

This defines struct to represent NCSI command packets and introduces
function ncsi_xmit_cmd(), which will be used to transmit NCSI command
packet according to the request. The request is represented by struct
ncsi_cmd_arg.

Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Acked-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-07-19 20:49:16 -07:00
Peter Heise
ee1c279772 net/hsr: Added support for HSR v1
This patch adds support for the newer version 1 of the HSR
networking standard. Version 0 is still default and the new
version has to be selected via iproute2.

Main changes are in the supervision frame handling and its
ethertype field.

Signed-off-by: Peter Heise <peter.heise@airbus.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-04-15 17:06:48 -04:00
Sabrina Dubroca
dece8d2b78 uapi: add MACsec bits
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Reviewed-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-03-13 22:40:24 -04:00
Henrik Austad
1ab1e89549 ether: add IEEE 1722 ethertype - TSN
IEEE 1722 describes AVB (later renamed to TSN - Time Sensitive
Networking), a protocol, encapsualtion and synchronization to utilize
standard networks for audio/video (and later other time-sensitive)
streams.

This standard uses ethertype 0x22F0.

http://standards.ieee.org/develop/regauth/ethertype/eth.txt

This is a respin of a previous patch ("ether: add AVB frame type
ETH_P_AVB")

CC: "David S. Miller" <davem@davemloft.net>
CC: netdev@vger.kernel.org
CC: linux-api@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Henrik Austad <henrik@austad.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-09-09 22:06:29 -07:00
Florian Fainelli
3e8a72d1da net: dsa: reduce number of protocol hooks
DSA is currently registering one packet_type function per EtherType it
needs to intercept in the receive path of a DSA-enabled Ethernet device.
Right now we have three of them: trailer, DSA and eDSA, and there might
be more in the future, this will not scale to the addition of new
protocols.

This patch proceeds with adding a new layer of abstraction and two new
functions:

dsa_switch_rcv() which will dispatch into the tag-protocol specific
receive function implemented by net/dsa/tag_*.c

dsa_slave_xmit() which will dispatch into the tag-protocol specific
transmit function implemented by net/dsa/tag_*.c

When we do create the per-port slave network devices, we iterate over
the switch protocol to assign the DSA-specific receive and transmit
operations.

A new fake ethertype value is used: ETH_P_XDSA to illustrate the fact
that this is no longer going to look like ETH_P_DSA or ETH_P_TRAILER
like it used to be.

This allows us to greatly simplify the check in eth_type_trans() and
always override the skb->protocol with ETH_P_XDSA for Ethernet switches
tagged protocol, while also reducing the number repetitive slave
netdevice_ops assignments.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-08-27 22:59:39 -07:00
Veaceslav Falico
61ccbb6844 ether: add loopback type ETH_P_LOOPBACK
Per IEEE 802.3*, the correct packet type for loopback 0x9000. There's
already one ETH_P_LOOP 0x0060, which has been there for ages, however it's
plainly wrong as anything that small is considered a length field.

We can't remove it because legacy, so add a new type which corresponds to
the correct id.

http://www.iana.org/assignments/ieee-802-numbers/ieee-802-numbers.xhtml

CC: "David S. Miller" <davem@davemloft.net>
CC: Stefan Richter <stefanr@s5r6.in-berlin.de>
CC: Simon Wunderlich <sw@simonwunderlich.de>
CC: Neil Jerram <Neil.Jerram@metaswitch.com>
CC: Simon Horman <horms@verge.net.au>
CC: Arvid Brodin <Arvid.Brodin@xdin.com>
Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-03-14 22:20:57 -04:00
Simon Wunderlich
b62faf3cdc if_ether.h: add IEEE 802.21 Ethertype
Add the Ethertype for IEEE Std 802.21 - Media Independent Handover
Protocol. This Ethertype is used for network control messages.

Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-03-04 13:51:06 -05:00
Neil Jerram
2ebe21fdde net: order MPLS ethertypes numerically
All ethertypes other than ETH_P_MPLS_UC, ETH_P_MPLS_MC and
ETH_P_ATMMPOA were already ordered numerically.  This commit moves
those three ETH_P_... values into correct numerical order too.

Signed-off-by: Neil Jerram <Neil.Jerram@metaswitch.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-02-26 15:14:26 -05:00
Arvid Brodin
f421436a59 net/hsr: Add support for the High-availability Seamless Redundancy protocol (HSRv0)
High-availability Seamless Redundancy ("HSR") provides instant failover
redundancy for Ethernet networks. It requires a special network topology where
all nodes are connected in a ring (each node having two physical network
interfaces). It is suited for applications that demand high availability and
very short reaction time.

HSR acts on the Ethernet layer, using a registered Ethernet protocol type to
send special HSR frames in both directions over the ring. The driver creates
virtual network interfaces that can be used just like any ordinary Linux
network interface, for IP/TCP/UDP traffic etc. All nodes in the network ring
must be HSR capable.

This code is a "best effort" to comply with the HSR standard as described in
IEC 62439-3:2010 (HSRv0).

Signed-off-by: Arvid Brodin <arvid.brodin@xdin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-11-03 23:20:14 -05:00
Simon Horman
e5c5d22e8d net: add ETH_P_802_3_MIN
Add a new constant ETH_P_802_3_MIN, the minimum ethernet type for
an 802.3 frame. Frames with a lower value in the ethernet type field
are Ethernet II.

Also update all the users of this value that David Miller and
I could find to use the new constant.

Also correct a bug in util.c. The comparison with ETH_P_802_3_MIN
should be >= not >.

As suggested by Jesse Gross.

Compile tested only.

Cc: David Miller <davem@davemloft.net>
Cc: Jesse Gross <jesse@nicira.com>
Cc: Karsten Keil <isdn@linux-pingi.de>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: Johannes Berg <johannes@sipsolutions.net>
Cc: Bart De Schuymer <bart.de.schuymer@pandora.be>
Cc: Stephen Hemminger <stephen@networkplumber.org>
Cc: Patrick McHardy <kaber@trash.net>
Cc: Marcel Holtmann <marcel@holtmann.org>
Cc: Gustavo Padovan <gustavo@padovan.org>
Cc: Johan Hedberg <johan.hedberg@gmail.com>
Cc: linux-bluetooth@vger.kernel.org
Cc: netfilter-devel@vger.kernel.org
Cc: bridge@lists.linux-foundation.org
Cc: linux-wireless@vger.kernel.org
Cc: linux1394-devel@lists.sourceforge.net
Cc: linux-media@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: dev@openvswitch.org
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Acked-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-03-28 01:20:42 -04:00
David Ward
86fbe9bb59 net/8021q: Implement Multiple VLAN Registration Protocol (MVRP)
Initial implementation of the Multiple VLAN Registration Protocol
(MVRP) from IEEE 802.1Q-2011, based on the existing implementation
of the GARP VLAN Registration Protocol (GVRP).

Signed-off-by: David Ward <david.ward@ll.mit.edu>
Acked-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-02-10 20:37:22 -05:00
Antonio Quartulli
4f99ad5129 if_ether.h: add B.A.T.M.A.N.-Advanced Ethertype
Add Ethertype 0x4305 (not an officially registered id).
This Ethertype is used by every frame generated by B.A.T.M.A.N.-Advanced. Its
definition is currently batman-adv local only and since it is not officially
registered it is better to make its definition kernel-wide so that we avoid
collisions given by future unofficial uses of the same Ethertype.

Signed-off-by: Antonio Quartulli <ordex@autistici.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-11-03 15:05:25 -04:00
David Howells
607ca46e97 UAPI: (Scripted) Disintegrate include/linux
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>
2012-10-13 10:46:48 +01:00