23 Dec, 2019

1 commit

  • Pull networking fixes from David Miller:

    1) Several nf_flow_table_offload fixes from Pablo Neira Ayuso,
    including adding a missing ipv6 match description.

    2) Several heap overflow fixes in mwifiex from qize wang and Ganapathi
    Bhat.

    3) Fix uninit value in bond_neigh_init(), from Eric Dumazet.

    4) Fix non-ACPI probing of nxp-nci, from Stephan Gerhold.

    5) Fix use after free in tipc_disc_rcv(), from Tuong Lien.

    6) Enforce limit of 33 tail calls in mips and riscv JIT, from Paul
    Chaignon.

    7) Multicast MAC limit test is off by one in qede, from Manish Chopra.

    8) Fix established socket lookup race when socket goes from
    TCP_ESTABLISHED to TCP_LISTEN, because there lacks an intervening
    RCU grace period. From Eric Dumazet.

    9) Don't send empty SKBs from tcp_write_xmit(), also from Eric Dumazet.

    10) Fix active backup transition after link failure in bonding, from
    Mahesh Bandewar.

    11) Avoid zero sized hash table in gtp driver, from Taehee Yoo.

    12) Fix wrong interface passed to ->mac_link_up(), from Russell King.

    13) Fix DSA egress flooding settings in b53, from Florian Fainelli.

    14) Memory leak in gmac_setup_txqs(), from Navid Emamdoost.

    15) Fix double free in dpaa2-ptp code, from Ioana Ciornei.

    16) Reject invalid MTU values in stmmac, from Jose Abreu.

    17) Fix refcount leak in error path of u32 classifier, from Davide
    Caratti.

    18) Fix regression causing iwlwifi firmware crashes on boot, from Anders
    Kaseorg.

    19) Fix inverted return value logic in llc2 code, from Chan Shu Tak.

    20) Disable hardware GRO when XDP is attached to qede, frm Manish
    Chopra.

    21) Since we encode state in the low pointer bits, dst metrics must be
    at least 4 byte aligned, which is not necessarily true on m68k. Add
    annotations to fix this, from Geert Uytterhoeven.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (160 commits)
    sfc: Include XDP packet headroom in buffer step size.
    sfc: fix channel allocation with brute force
    net: dst: Force 4-byte alignment of dst_metrics
    selftests: pmtu: fix init mtu value in description
    hv_netvsc: Fix unwanted rx_table reset
    net: phy: ensure that phy IDs are correctly typed
    mod_devicetable: fix PHY module format
    qede: Disable hardware gro when xdp prog is installed
    net: ena: fix issues in setting interrupt moderation params in ethtool
    net: ena: fix default tx interrupt moderation interval
    net/smc: unregister ib devices in reboot_event
    net: stmmac: platform: Fix MDIO init for platforms without PHY
    llc2: Fix return statement of llc_stat_ev_rx_null_dsap_xid_c (and _test_c)
    net: hisilicon: Fix a BUG trigered by wrong bytes_compl
    net: dsa: ksz: use common define for tag len
    s390/qeth: don't return -ENOTSUPP to userspace
    s390/qeth: fix promiscuous mode after reset
    s390/qeth: handle error due to unsupported transport mode
    cxgb4: fix refcount init for TC-MQPRIO offload
    tc-testing: initial tdc selftests for cls_u32
    ...

    Linus Torvalds
     

11 Dec, 2019

1 commit

  • All BPF JIT compilers except RISC-V's and MIPS' enforce a 33-tail calls
    limit at runtime. In addition, a test was recently added, in tailcalls2,
    to check this limit.

    This patch updates the tail call limit in MIPS' JIT compiler to allow
    33 tail calls.

    Fixes: b6bd53f9c4e8 ("MIPS: Add missing file for eBPF JIT.")
    Reported-by: Mahshid Khezri
    Signed-off-by: Paul Chaignon
    Signed-off-by: Daniel Borkmann
    Acked-by: Martin KaFai Lau
    Link: https://lore.kernel.org/bpf/b8eb2caac1c25453c539248e56ca22f74b5316af.1575916815.git.paul.chaignon@gmail.com

    Paul Chaignon
     

10 Dec, 2019

1 commit

  • Switch to the standard sizeof_field() macro to find the size of a member
    of a struct and remove the custom SIZEOF_FIELD() macro.

    Signed-off-by: Pankaj Bharadiya
    Link: https://lore.kernel.org/r/20190924105839.110713-4-pankaj.laxminarayan.bharadiya@intel.com
    Co-developed-by: Kees Cook
    Signed-off-by: Kees Cook

    Pankaj Bharadiya
     

05 Dec, 2019

2 commits

  • Userspace cannot compile due to some missing type
    definitions. For example, building it for x86 fails as follows:

    CC usr/include/asm/sembuf.h.s
    In file included from :32:0:
    usr/include/asm/sembuf.h:17:20: error: field `sem_perm' has incomplete type
    struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
    ^~~~~~~~
    usr/include/asm/sembuf.h:24:2: error: unknown type name `__kernel_time_t'
    __kernel_time_t sem_otime; /* last semop time */
    ^~~~~~~~~~~~~~~
    usr/include/asm/sembuf.h:25:2: error: unknown type name `__kernel_ulong_t'
    __kernel_ulong_t __unused1;
    ^~~~~~~~~~~~~~~~
    usr/include/asm/sembuf.h:26:2: error: unknown type name `__kernel_time_t'
    __kernel_time_t sem_ctime; /* last change time */
    ^~~~~~~~~~~~~~~
    usr/include/asm/sembuf.h:27:2: error: unknown type name `__kernel_ulong_t'
    __kernel_ulong_t __unused2;
    ^~~~~~~~~~~~~~~~
    usr/include/asm/sembuf.h:29:2: error: unknown type name `__kernel_ulong_t'
    __kernel_ulong_t sem_nsems; /* no. of semaphores in array */
    ^~~~~~~~~~~~~~~~
    usr/include/asm/sembuf.h:30:2: error: unknown type name `__kernel_ulong_t'
    __kernel_ulong_t __unused3;
    ^~~~~~~~~~~~~~~~
    usr/include/asm/sembuf.h:31:2: error: unknown type name `__kernel_ulong_t'
    __kernel_ulong_t __unused4;
    ^~~~~~~~~~~~~~~~

    It is just a matter of missing include directive.

    Include to make it self-contained, and add it to
    the compile-test coverage.

    Link: http://lkml.kernel.org/r/20191030063855.9989-3-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     
  • Userspace cannot compile due to some missing type
    definitions. For example, building it for x86 fails as follows:

    CC usr/include/asm/msgbuf.h.s
    In file included from usr/include/asm/msgbuf.h:6:0,
    from :32:
    usr/include/asm-generic/msgbuf.h:25:20: error: field `msg_perm' has incomplete type
    struct ipc64_perm msg_perm;
    ^~~~~~~~
    usr/include/asm-generic/msgbuf.h:27:2: error: unknown type name `__kernel_time_t'
    __kernel_time_t msg_stime; /* last msgsnd time */
    ^~~~~~~~~~~~~~~
    usr/include/asm-generic/msgbuf.h:28:2: error: unknown type name `__kernel_time_t'
    __kernel_time_t msg_rtime; /* last msgrcv time */
    ^~~~~~~~~~~~~~~
    usr/include/asm-generic/msgbuf.h:29:2: error: unknown type name `__kernel_time_t'
    __kernel_time_t msg_ctime; /* last change time */
    ^~~~~~~~~~~~~~~
    usr/include/asm-generic/msgbuf.h:41:2: error: unknown type name `__kernel_pid_t'
    __kernel_pid_t msg_lspid; /* pid of last msgsnd */
    ^~~~~~~~~~~~~~
    usr/include/asm-generic/msgbuf.h:42:2: error: unknown type name `__kernel_pid_t'
    __kernel_pid_t msg_lrpid; /* last receive pid */
    ^~~~~~~~~~~~~~

    It is just a matter of missing include directive.

    Include to make it self-contained, and add it to
    the compile-test coverage.

    Link: http://lkml.kernel.org/r/20191030063855.9989-2-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     

04 Dec, 2019

2 commits

  • Pull PCI updates from Bjorn Helgaas:
    "Enumeration:

    - Warn if a host bridge has no NUMA info (Yunsheng Lin)

    - Add PCI_STD_NUM_BARS for the number of standard BARs (Denis
    Efremov)

    Resource management:

    - Fix boot-time Embedded Controller GPE storm caused by incorrect
    resource assignment after ACPI Bus Check Notification (Mika
    Westerberg)

    - Protect pci_reassign_bridge_resources() against concurrent
    addition/removal (Benjamin Herrenschmidt)

    - Fix bridge dma_ranges resource list cleanup (Rob Herring)

    - Add "pci=hpmmiosize" and "pci=hpmmioprefsize" parameters to control
    the MMIO and prefetchable MMIO window sizes of hotplug bridges
    independently (Nicholas Johnson)

    - Fix MMIO/MMIO_PREF window assignment that assigned more space than
    desired (Nicholas Johnson)

    - Only enforce bus numbers from bridge EA if the bridge has EA
    devices downstream (Subbaraya Sundeep)

    - Consolidate DT "dma-ranges" parsing and convert all host drivers to
    use shared parsing (Rob Herring)

    Error reporting:

    - Restore AER capability after resume (Mayurkumar Patel)

    - Add PoisonTLPBlocked AER counter (Rajat Jain)

    - Use for_each_set_bit() to simplify AER code (Andy Shevchenko)

    - Fix AER kernel-doc (Andy Shevchenko)

    - Add "pcie_ports=dpc-native" parameter to allow native use of DPC
    even if platform didn't grant control over AER (Olof Johansson)

    Hotplug:

    - Avoid returning prematurely from sysfs requests to enable or
    disable a PCIe hotplug slot (Lukas Wunner)

    - Don't disable interrupts twice when suspending hotplug ports (Mika
    Westerberg)

    - Fix deadlocks when PCIe ports are hot-removed while suspended (Mika
    Westerberg)

    Power management:

    - Remove unnecessary ASPM locking (Bjorn Helgaas)

    - Add support for disabling L1 PM Substates (Heiner Kallweit)

    - Allow re-enabling Clock PM after it has been disabled (Heiner
    Kallweit)

    - Add sysfs attributes for controlling ASPM link states (Heiner
    Kallweit)

    - Remove CONFIG_PCIEASPM_DEBUG, including "link_state" and "clk_ctl"
    sysfs files (Heiner Kallweit)

    - Avoid AMD FCH XHCI USB PME# from D0 defect that prevents wakeup on
    USB 2.0 or 1.1 connect events (Kai-Heng Feng)

    - Move power state check out of pci_msi_supported() (Bjorn Helgaas)

    - Fix incorrect MSI-X masking on resume and revert related nvme quirk
    for Kingston NVME SSD running FW E8FK11.T (Jian-Hong Pan)

    - Always return devices to D0 when thawing to fix hibernation with
    drivers like mlx4 that used legacy power management (previously we
    only did it for drivers with new power management ops) (Dexuan Cui)

    - Clear PCIe PME Status even for legacy power management (Bjorn
    Helgaas)

    - Fix PCI PM documentation errors (Bjorn Helgaas)

    - Use dev_printk() for more power management messages (Bjorn Helgaas)

    - Apply D2 delay as milliseconds, not microseconds (Bjorn Helgaas)

    - Convert xen-platform from legacy to generic power management (Bjorn
    Helgaas)

    - Removed unused .resume_early() and .suspend_late() legacy power
    management hooks (Bjorn Helgaas)

    - Rearrange power management code for clarity (Rafael J. Wysocki)

    - Decode power states more clearly ("4" or "D4" really refers to
    "D3cold") (Bjorn Helgaas)

    - Notice when reading PM Control register returns an error (~0)
    instead of interpreting it as being in D3hot (Bjorn Helgaas)

    - Add missing link delays required by the PCIe spec (Mika Westerberg)

    Virtualization:

    - Move pci_prg_resp_pasid_required() to CONFIG_PCI_PRI (Bjorn
    Helgaas)

    - Allow VFs to use PRI (the PF PRI is shared by the VFs, but the code
    previously didn't recognize that) (Kuppuswamy Sathyanarayanan)

    - Allow VFs to use PASID (the PF PASID capability is shared by the
    VFs, but the code previously didn't recognize that) (Kuppuswamy
    Sathyanarayanan)

    - Disconnect PF and VF ATS enablement, since ATS in PFs and
    associated VFs can be enabled independently (Kuppuswamy
    Sathyanarayanan)

    - Cache PRI and PASID capability offsets (Kuppuswamy Sathyanarayanan)

    - Cache the PRI PRG Response PASID Required bit (Bjorn Helgaas)

    - Consolidate ATS declarations in linux/pci-ats.h (Krzysztof
    Wilczynski)

    - Remove unused PRI and PASID stubs (Bjorn Helgaas)

    - Removed unnecessary EXPORT_SYMBOL_GPL() from ATS, PRI, and PASID
    interfaces that are only used by built-in IOMMU drivers (Bjorn
    Helgaas)

    - Hide PRI and PASID state restoration functions used only inside the
    PCI core (Bjorn Helgaas)

    - Add a DMA alias quirk for the Intel VCA NTB (Slawomir Pawlowski)

    - Serialize sysfs sriov_numvfs reads vs writes (Pierre Crégut)

    - Update Cavium ACS quirk for ThunderX2 and ThunderX3 (George
    Cherian)

    - Fix the UPDCR register address in the Intel ACS quirk (Steffen
    Liebergeld)

    - Unify ACS quirk implementations (Bjorn Helgaas)

    Amlogic Meson host bridge driver:

    - Fix meson PERST# GPIO polarity problem (Remi Pommarel)

    - Add DT bindings for Amlogic Meson G12A (Neil Armstrong)

    - Fix meson clock names to match DT bindings (Neil Armstrong)

    - Add meson support for Amlogic G12A SoC with separate shared PHY
    (Neil Armstrong)

    - Add meson extended PCIe PHY functions for Amlogic G12A USB3+PCIe
    combo PHY (Neil Armstrong)

    - Add arm64 DT for Amlogic G12A PCIe controller node (Neil Armstrong)

    - Add commented-out description of VIM3 USB3/PCIe mux in arm64 DT
    (Neil Armstrong)

    Broadcom iProc host bridge driver:

    - Invalidate iProc PAXB address mapping before programming it
    (Abhishek Shah)

    - Fix iproc-msi and mvebu __iomem annotations (Ben Dooks)

    Cadence host bridge driver:

    - Refactor Cadence PCIe host controller to use as a library for both
    host and endpoint (Tom Joseph)

    Freescale Layerscape host bridge driver:

    - Add layerscape LS1028a support (Xiaowei Bao)

    Intel VMD host bridge driver:

    - Add VMD bus 224-255 restriction decode (Jon Derrick)

    - Add VMD 8086:9A0B device ID (Jon Derrick)

    - Remove Keith from VMD maintainer list (Keith Busch)

    Marvell ARMADA 3700 / Aardvark host bridge driver:

    - Use LTSSM state to build link training flag since Aardvark doesn't
    implement the Link Training bit (Remi Pommarel)

    - Delay before training Aardvark link in case PERST# was asserted
    before the driver probe (Remi Pommarel)

    - Fix Aardvark issues with Root Control reads and writes (Remi
    Pommarel)

    - Don't rely on jiffies in Aardvark config access path since
    interrupts may be disabled (Remi Pommarel)

    - Fix Aardvark big-endian support (Grzegorz Jaszczyk)

    Marvell ARMADA 370 / XP host bridge driver:

    - Make mvebu_pci_bridge_emul_ops static (Ben Dooks)

    Microsoft Hyper-V host bridge driver:

    - Add hibernation support for Hyper-V virtual PCI devices (Dexuan
    Cui)

    - Track Hyper-V pci_protocol_version per-hbus, not globally (Dexuan
    Cui)

    - Avoid kmemleak false positive on hv hbus buffer (Dexuan Cui)

    Mobiveil host bridge driver:

    - Change mobiveil csr_read()/write() function names that conflict
    with riscv arch functions (Kefeng Wang)

    NVIDIA Tegra host bridge driver:

    - Fix Tegra CLKREQ dependency programming (Vidya Sagar)

    Renesas R-Car host bridge driver:

    - Remove unnecessary header include from rcar (Andrew Murray)

    - Tighten register index checking for rcar inbound range programming
    (Marek Vasut)

    - Fix rcar inbound range alignment calculation to improve packing of
    multiple entries (Marek Vasut)

    - Update rcar MACCTLR setting to match documentation (Yoshihiro
    Shimoda)

    - Clear bit 0 of MACCTLR before PCIETCTLR.CFINIT per manual
    (Yoshihiro Shimoda)

    - Add Marek Vasut and Yoshihiro Shimoda as R-Car maintainers (Simon
    Horman)

    Rockchip host bridge driver:

    - Make rockchip 0V9 and 1V8 power regulators non-optional (Robin
    Murphy)

    Socionext UniPhier host bridge driver:

    - Set uniphier to host (RC) mode always (Kunihiko Hayashi)

    Endpoint drivers:

    - Fix endpoint driver sign extension problem when shifting page
    number to phys_addr_t (Alan Mikhak)

    Misc:

    - Add NumaChip SPDX header (Krzysztof Wilczynski)

    - Replace EXTRA_CFLAGS with ccflags-y (Krzysztof Wilczynski)

    - Remove unused includes (Krzysztof Wilczynski)

    - Removed unused sysfs attribute groups (Ben Dooks)

    - Remove PTM and ASPM dependencies on PCIEPORTBUS (Bjorn Helgaas)

    - Add PCIe Link Control 2 register field definitions to replace magic
    numbers in AMDGPU and Radeon CIK/SI (Bjorn Helgaas)

    - Fix incorrect Link Control 2 Transmit Margin usage in AMDGPU and
    Radeon CIK/SI PCIe Gen3 link training (Bjorn Helgaas)

    - Use pcie_capability_read_word() instead of pci_read_config_word()
    in AMDGPU and Radeon CIK/SI (Frederick Lawler)

    - Remove unused pci_irq_get_node() Greg Kroah-Hartman)

    - Make asm/msi.h mandatory and simplify PCI_MSI_IRQ_DOMAIN Kconfig
    (Palmer Dabbelt, Michal Simek)

    - Read all 64 bits of Switchtec part_event_bitmap (Logan Gunthorpe)

    - Fix erroneous intel-iommu dependency on CONFIG_AMD_IOMMU (Bjorn
    Helgaas)

    - Fix bridge emulation big-endian support (Grzegorz Jaszczyk)

    - Fix dwc find_next_bit() usage (Niklas Cassel)

    - Fix pcitest.c fd leak (Hewenliang)

    - Fix typos and comments (Bjorn Helgaas)

    - Fix Kconfig whitespace errors (Krzysztof Kozlowski)"

    * tag 'pci-v5.5-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (160 commits)
    PCI: Remove PCI_MSI_IRQ_DOMAIN architecture whitelist
    asm-generic: Make msi.h a mandatory include/asm header
    Revert "nvme: Add quirk for Kingston NVME SSD running FW E8FK11.T"
    PCI/MSI: Fix incorrect MSI-X masking on resume
    PCI/MSI: Move power state check out of pci_msi_supported()
    PCI/MSI: Remove unused pci_irq_get_node()
    PCI: hv: Avoid a kmemleak false positive caused by the hbus buffer
    PCI: hv: Change pci_protocol_version to per-hbus
    PCI: hv: Add hibernation support
    PCI: hv: Reorganize the code in preparation of hibernation
    MAINTAINERS: Remove Keith from VMD maintainer
    PCI/ASPM: Remove PCIEASPM_DEBUG Kconfig option and related code
    PCI/ASPM: Add sysfs attributes for controlling ASPM link states
    PCI: Fix indentation
    drm/radeon: Prefer pcie_capability_read_word()
    drm/radeon: Replace numbers with PCI_EXP_LNKCTL2 definitions
    drm/radeon: Correct Transmit Margin masks
    drm/amdgpu: Prefer pcie_capability_read_word()
    PCI: uniphier: Set mode register to host mode
    drm/amdgpu: Replace numbers with PCI_EXP_LNKCTL2 definitions
    ...

    Linus Torvalds
     
  • Pull RTC updates from Alexandre Belloni:
    "A lot of unnecessary code removal in here that ends up decreasing the
    number of lines in the subsystem. The ds1343 and ds1347 drivers got
    cleaned up. The rest are the usual fixes and new features.

    Subsystem:
    - fix warnings and errors with make W=1
    - UIE are now disabled while setting the RTC time
    - UIE are now disallowed when the RTC time is not set.

    Drivers:
    - remove unecessary .remove callbacks
    - Set RTC range for cros-ec, ds1343, ds1347, m41t80, s35390a, vt8500
    - Use devm_platform_ioremap_resource where applicable
    - rv3028: add clock out support"

    * tag 'rtc-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (81 commits)
    rtc: Fix Kconfig indentation
    rtc: xgene: Remove unused struct device in struct xgene_rtc_dev
    rtc: sun6i: Remove struct device from sun6i_rtc_dev
    rtc: st-lpc: Remove struct resource from struct st_rtc
    rtc: pcf8523: Remove struct pcf8523
    rtc: meson: remove redundant assignment to variable retries
    rtc: v3020: remove set but unused variable
    rtc: tegra: remove set but unused variable
    rtc: pm8xxx: update kerneldoc for struct pm8xxx_rtc
    rtc: m41t80: remove excess kerneldoc
    rtc: ds1685: fix build error with make W=1
    rtc: ds1685: remove set but unused variables
    rtc: ds1374: remove unused variable
    rtc: sysfs: fix hctosys_show kerneldoc
    rtc: interface: fix kerneldoc comments
    rtc: msm6242: Remove unneeded msm6242_set()/msm6242_clear() functions
    rtc: msm6242: Fix reading of 10-hour digit
    rtc: tps65910: allow using RTC without alarm interrupt
    rtc: fsl-ftm-alarm: remove select FSL_RCPM and default y from Kconfig
    rtc: pcf8563: Constify clkout_rates
    ...

    Linus Torvalds
     

03 Dec, 2019

1 commit

  • Pull crypto fixes from Herbert Xu:

    - Fix build error in crypto lib code when crypto API is off

    - Fix NULL/error check in hisilicon

    - Fix Kconfig-related build error in talitos

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: hisilicon - fix a NULL vs IS_ERR() bug in sec_create_qp_ctx()
    crypto: talitos - Fix build error by selecting LIB_DES
    crypto: arch - conditionalize crypto api in arch glue for lib code

    Linus Torvalds
     

02 Dec, 2019

2 commits

  • Pull y2038 cleanups from Arnd Bergmann:
    "y2038 syscall implementation cleanups

    This is a series of cleanups for the y2038 work, mostly intended for
    namespace cleaning: the kernel defines the traditional time_t, timeval
    and timespec types that often lead to y2038-unsafe code. Even though
    the unsafe usage is mostly gone from the kernel, having the types and
    associated functions around means that we can still grow new users,
    and that we may be missing conversions to safe types that actually
    matter.

    There are still a number of driver specific patches needed to get the
    last users of these types removed, those have been submitted to the
    respective maintainers"

    Link: https://lore.kernel.org/lkml/20191108210236.1296047-1-arnd@arndb.de/

    * tag 'y2038-cleanups-5.5' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground: (26 commits)
    y2038: alarm: fix half-second cut-off
    y2038: ipc: fix x32 ABI breakage
    y2038: fix typo in powerpc vdso "LOPART"
    y2038: allow disabling time32 system calls
    y2038: itimer: change implementation to timespec64
    y2038: move itimer reset into itimer.c
    y2038: use compat_{get,set}_itimer on alpha
    y2038: itimer: compat handling to itimer.c
    y2038: time: avoid timespec usage in settimeofday()
    y2038: timerfd: Use timespec64 internally
    y2038: elfcore: Use __kernel_old_timeval for process times
    y2038: make ns_to_compat_timeval use __kernel_old_timeval
    y2038: socket: use __kernel_old_timespec instead of timespec
    y2038: socket: remove timespec reference in timestamping
    y2038: syscalls: change remaining timeval to __kernel_old_timeval
    y2038: rusage: use __kernel_old_timeval
    y2038: uapi: change __kernel_time_t to __kernel_old_time_t
    y2038: stat: avoid 'time_t' in 'struct stat'
    y2038: ipc: remove __kernel_time_t reference from headers
    y2038: vdso: powerpc: avoid timespec references
    ...

    Linus Torvalds
     
  • Pull sysctl system call removal from Eric Biederman:
    "As far as I can tell we have reached the point where no one enables
    the sysctl system call anymore. It still is enabled in a few
    defconfigs but they are mostly the rarely used one and in asking
    people about that it was more cut & paste enabled than anything else.

    This is single commit that just deletes code. Leaving just enough code
    so that the deprecated sysctl warning continues to be printed. If my
    analysis turns out to be wrong and someone actually cares it will be
    easy to revert this commit and have the system call again.

    There was one new xtensa defconfig in linux-next that enabled the
    system call this cycle and when asked about it the maintainer of the
    code replied that it was not enabled on purpose. As of today's
    linux-next tree that defconfig no longer enables the system call.

    What we saw in the review discussion was that if we go a step farther
    than my patch and mess with uapi headers there are pieces of code that
    won't compile, but nothing minds the system call actually disappearing
    from the kernel"

    Link: https://lore.kernel.org/lkml/201910011140.EA0181F13@keescook/

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
    sysctl: Remove the sysctl system call

    Linus Torvalds
     

29 Nov, 2019

1 commit

  • …linux; tag 'dma-mapping-5.5' of git://git.infradead.org/users/hch/dma-mapping

    Pull dma-mapping updates from Christoph Hellwig:

    - improve dma-debug scalability (Eric Dumazet)

    - tiny dma-debug cleanup (Dan Carpenter)

    - check for vmap memory in dma_map_single (Kees Cook)

    - check for dma_addr_t overflows in dma-direct when using DMA offsets
    (Nicolas Saenz Julienne)

    - switch the x86 sta2x11 SOC to use more generic DMA code (Nicolas
    Saenz Julienne)

    - fix arm-nommu dma-ranges handling (Vladimir Murzin)

    - use __initdata in CMA (Shyam Saini)

    - replace the bus dma mask with a limit (Nicolas Saenz Julienne)

    - merge the remapping helpers into the main dma-direct flow (me)

    - switch xtensa to the generic dma remap handling (me)

    - various cleanups around dma_capable (me)

    - remove unused dev arguments to various dma-noncoherent helpers (me)

    * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux:

    * tag 'dma-mapping-5.5' of git://git.infradead.org/users/hch/dma-mapping: (22 commits)
    dma-mapping: treat dev->bus_dma_mask as a DMA limit
    dma-direct: exclude dma_direct_map_resource from the min_low_pfn check
    dma-direct: don't check swiotlb=force in dma_direct_map_resource
    dma-debug: clean up put_hash_bucket()
    powerpc: remove support for NULL dev in __phys_to_dma / __dma_to_phys
    dma-direct: avoid a forward declaration for phys_to_dma
    dma-direct: unify the dma_capable definitions
    dma-mapping: drop the dev argument to arch_sync_dma_for_*
    x86/PCI: sta2x11: use default DMA address translation
    dma-direct: check for overflows on 32 bit DMA addresses
    dma-debug: increase HASH_SIZE
    dma-debug: reorder struct dma_debug_entry fields
    xtensa: use the generic uncached segment support
    dma-mapping: merge the generic remapping helpers into dma-direct
    dma-direct: provide mmap and get_sgtable method overrides
    dma-direct: remove the dma_handle argument to __dma_direct_alloc_pages
    dma-direct: remove __dma_direct_free_pages
    usb: core: Remove redundant vmap checks
    kernel: dma-contiguous: mark CMA parameters __initdata/__initconst
    dma-debug: add a schedule point in debug_dma_dump_mappings()
    ...

    Linus Torvalds
     

28 Nov, 2019

2 commits

  • Pull tracing updates from Steven Rostedt:
    "New tracing features:

    - New PERMANENT flag to ftrace_ops when attaching a callback to a
    function.

    As /proc/sys/kernel/ftrace_enabled when set to zero will disable
    all attached callbacks in ftrace, this has a detrimental impact on
    live kernel tracing, as it disables all that it patched. If a
    ftrace_ops is registered to ftrace with the PERMANENT flag set, it
    will prevent ftrace_enabled from being disabled, and if
    ftrace_enabled is already disabled, it will prevent a ftrace_ops
    with PREMANENT flag set from being registered.

    - New register_ftrace_direct().

    As eBPF would like to register its own trampolines to be called by
    the ftrace nop locations directly, without going through the ftrace
    trampoline, this function has been added. This allows for eBPF
    trampolines to live along side of ftrace, perf, kprobe and live
    patching. It also utilizes the ftrace enabled_functions file that
    keeps track of functions that have been modified in the kernel, to
    allow for security auditing.

    - Allow for kernel internal use of ftrace instances.

    Subsystems in the kernel can now create and destroy their own
    tracing instances which allows them to have their own tracing
    buffer, and be able to record events without worrying about other
    users from writing over their data.

    - New seq_buf_hex_dump() that lets users use the hex_dump() in their
    seq_buf usage.

    - Notifications now added to tracing_max_latency to allow user space
    to know when a new max latency is hit by one of the latency
    tracers.

    - Wider spread use of generic compare operations for use of bsearch
    and friends.

    - More synthetic event fields may be defined (32 up from 16)

    - Use of xarray for architectures with sparse system calls, for the
    system call trace events.

    This along with small clean ups and fixes"

    * tag 'trace-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (51 commits)
    tracing: Enable syscall optimization for MIPS
    tracing: Use xarray for syscall trace events
    tracing: Sample module to demonstrate kernel access to Ftrace instances.
    tracing: Adding new functions for kernel access to Ftrace instances
    tracing: Fix Kconfig indentation
    ring-buffer: Fix typos in function ring_buffer_producer
    ftrace: Use BIT() macro
    ftrace: Return ENOTSUPP when DYNAMIC_FTRACE_WITH_DIRECT_CALLS is not configured
    ftrace: Rename ftrace_graph_stub to ftrace_stub_graph
    ftrace: Add a helper function to modify_ftrace_direct() to allow arch optimization
    ftrace: Add helper find_direct_entry() to consolidate code
    ftrace: Add another check for match in register_ftrace_direct()
    ftrace: Fix accounting bug with direct->count in register_ftrace_direct()
    ftrace/selftests: Fix spelling mistake "wakeing" -> "waking"
    tracing: Increase SYNTH_FIELDS_MAX for synthetic_events
    ftrace/samples: Add a sample module that implements modify_ftrace_direct()
    ftrace: Add modify_ftrace_direct()
    tracing: Add missing "inline" in stub function of latency_fsnotify()
    tracing: Remove stray tab in TRACE_EVAL_MAP_FILE's help text
    tracing: Use seq_buf_hex_dump() to dump buffers
    ...

    Linus Torvalds
     
  • Pull staging / iio updates from Greg KH:
    "Here is the big staging and iio set of patches for the 5.5-rc1
    release.

    It's the usual huge collection of cleanup patches all over the
    drivers/staging/ area, along with a new staging driver, and a bunch of
    new IIO drivers as well.

    Full details are in the shortlog, but all of these have been in
    linux-next for a long time with no reported issues"

    * tag 'staging-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (548 commits)
    staging: vchiq: Have vchiq_dump_* functions return an error code
    staging: vchiq: Refactor indentation in vchiq_dump_* functions
    staging: fwserial: Fix Kconfig indentation (seven spaces)
    staging: vchiq_dump: Replace min with min_t
    staging: vchiq: Fix block comment format in vchiq_dump()
    staging: octeon: indent with tabs instead of spaces
    staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error
    staging: most: core: remove sysfs attr remove_link
    staging: vc04: Fix Kconfig indentation
    staging: pi433: Fix Kconfig indentation
    staging: nvec: Fix Kconfig indentation
    staging: most: Fix Kconfig indentation
    staging: fwserial: Fix Kconfig indentation
    staging: fbtft: Fix Kconfig indentation
    fbtft: Drop OF dependency
    fbtft: Make use of device property API
    fbtft: Drop useless #ifdef CONFIG_OF and dead code
    fbtft: Describe function parameters in kernel-doc
    fbtft: Make sure string is NULL terminated
    staging: rtl8723bs: remove set but not used variable 'change', 'pos'
    ...

    Linus Torvalds
     

27 Nov, 2019

4 commits

  • For glue code that's used by Zinc, the actual Crypto API functions might
    not necessarily exist, and don't need to exist either. Before this
    patch, there are valid build configurations that lead to a unbuildable
    kernel. This fixes it to conditionalize those symbols on the existence
    of the proper config entry.

    Signed-off-by: Jason A. Donenfeld
    Acked-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu

    Jason A. Donenfeld
     
  • msi.h is generic for all architectures except x86, which has its own
    version. Enabling MSI by adding msi.h to every architecture's Kbuild is
    just an additional step which doesn't need to be done.

    Make msi.h mandatory in the asm-generic/Kbuild so we don't have to do it
    for each architecture.

    Suggested-by: Christoph Hellwig
    Link: https://lore.kernel.org/r/c991669e29a79b1a8e28c3b4b3a125801a693de8.1571983829.git.michal.simek@xilinx.com
    Tested-by: Paul Walmsley # build only, rv32/rv64
    Signed-off-by: Michal Simek
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Masahiro Yamada
    Acked-by: Waiman Long
    Acked-by: Paul Walmsley # arch/riscv

    Michal Simek
     
  • This system call has been deprecated almost since it was introduced, and
    in a survey of the linux distributions I can no longer find any of them
    that enable CONFIG_SYSCTL_SYSCALL. The only indication that I can find
    that anyone might care is that a few of the defconfigs in the kernel
    enable CONFIG_SYSCTL_SYSCALL. However this appears in only 31 of 414
    defconfigs in the kernel, so I suspect this symbols presence is simply
    because it is harmless to include rather than because it is necessary.

    As there appear to be no users of the sysctl system call, remove the
    code. As this removes one of the few uses of the internal kernel mount
    of proc I hope this allows for even more simplifications of the proc
    filesystem.

    Cc: Alex Smith
    Cc: Anders Berg
    Cc: Apelete Seketeli
    Cc: Arnd Bergmann
    Cc: Chee Nouk Phoon
    Cc: Chris Zankel
    Cc: Christian Ruppert
    Cc: Greg Ungerer
    Cc: Harvey Hunt
    Cc: Helge Deller
    Cc: Hongliang Tao
    Cc: Hua Yan
    Cc: Huacai Chen
    Cc: John Crispin
    Cc: Jonas Jensen
    Cc: Josh Boyer
    Cc: Jun Nie
    Cc: Kevin Hilman
    Cc: Kevin Wells
    Cc: Kumar Gala
    Cc: Lars-Peter Clausen
    Cc: Ley Foon Tan
    Cc: Linus Walleij
    Cc: Markos Chandras
    Cc: Max Filippov
    Cc: Noam Camus
    Cc: Olof Johansson
    Cc: Paul Burton
    Cc: Paul Mundt
    Cc: Phil Edworthy
    Cc: Pierrick Hascoet
    Cc: Ralf Baechle
    Cc: Roland Stigge
    Cc: Santosh Shilimkar
    Cc: Scott Telford
    Cc: Stephen Boyd
    Cc: Steven J. Hill
    Cc: Tanmay Inamdar
    Cc: Vineet Gupta
    Cc: Wolfram Sang
    Acked-by: Andi Kleen
    Reviewed-by: Kees Cook
    Signed-off-by: "Eric W. Biederman"

    Eric W. Biederman
     
  • Pull x86 asm updates from Ingo Molnar:
    "The main changes in this cycle were:

    - Cross-arch changes to move the linker sections for NOTES and
    EXCEPTION_TABLE into the RO_DATA area, where they belong on most
    architectures. (Kees Cook)

    - Switch the x86 linker fill byte from x90 (NOP) to 0xcc (INT3), to
    trap jumps into the middle of those padding areas instead of
    sliding execution. (Kees Cook)

    - A thorough cleanup of symbol definitions within x86 assembler code.
    The rather randomly named macros got streamlined around a
    (hopefully) straightforward naming scheme:

    SYM_START(name, linkage, align...)
    SYM_END(name, sym_type)

    SYM_FUNC_START(name)
    SYM_FUNC_END(name)

    SYM_CODE_START(name)
    SYM_CODE_END(name)

    SYM_DATA_START(name)
    SYM_DATA_END(name)

    etc - with about three times of these basic primitives with some
    label, local symbol or attribute variant, expressed via postfixes.

    No change in functionality intended. (Jiri Slaby)

    - Misc other changes, cleanups and smaller fixes"

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (67 commits)
    x86/entry/64: Remove pointless jump in paranoid_exit
    x86/entry/32: Remove unused resume_userspace label
    x86/build/vdso: Remove meaningless CFLAGS_REMOVE_*.o
    m68k: Convert missed RODATA to RO_DATA
    x86/vmlinux: Use INT3 instead of NOP for linker fill bytes
    x86/mm: Report actual image regions in /proc/iomem
    x86/mm: Report which part of kernel image is freed
    x86/mm: Remove redundant address-of operators on addresses
    xtensa: Move EXCEPTION_TABLE to RO_DATA segment
    powerpc: Move EXCEPTION_TABLE to RO_DATA segment
    parisc: Move EXCEPTION_TABLE to RO_DATA segment
    microblaze: Move EXCEPTION_TABLE to RO_DATA segment
    ia64: Move EXCEPTION_TABLE to RO_DATA segment
    h8300: Move EXCEPTION_TABLE to RO_DATA segment
    c6x: Move EXCEPTION_TABLE to RO_DATA segment
    arm64: Move EXCEPTION_TABLE to RO_DATA segment
    alpha: Move EXCEPTION_TABLE to RO_DATA segment
    x86/vmlinux: Move EXCEPTION_TABLE to RO_DATA segment
    x86/vmlinux: Actually use _etext for the end of the text segment
    vmlinux.lds.h: Allow EXCEPTION_TABLE to live in RO_DATA
    ...

    Linus Torvalds
     

26 Nov, 2019

2 commits

  • Pull crypto updates from Herbert Xu:
    "API:
    - Add library interfaces of certain crypto algorithms for WireGuard
    - Remove the obsolete ablkcipher and blkcipher interfaces
    - Move add_early_randomness() out of rng_mutex

    Algorithms:
    - Add blake2b shash algorithm
    - Add blake2s shash algorithm
    - Add curve25519 kpp algorithm
    - Implement 4 way interleave in arm64/gcm-ce
    - Implement ciphertext stealing in powerpc/spe-xts
    - Add Eric Biggers's scalar accelerated ChaCha code for ARM
    - Add accelerated 32r2 code from Zinc for MIPS
    - Add OpenSSL/CRYPTOGRAMS poly1305 implementation for ARM and MIPS

    Drivers:
    - Fix entropy reading failures in ks-sa
    - Add support for sam9x60 in atmel
    - Add crypto accelerator for amlogic GXL
    - Add sun8i-ce Crypto Engine
    - Add sun8i-ss cryptographic offloader
    - Add a host of algorithms to inside-secure
    - Add NPCM RNG driver
    - add HiSilicon HPRE accelerator
    - Add HiSilicon TRNG driver"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (285 commits)
    crypto: vmx - Avoid weird build failures
    crypto: lib/chacha20poly1305 - use chacha20_crypt()
    crypto: x86/chacha - only unregister algorithms if registered
    crypto: chacha_generic - remove unnecessary setkey() functions
    crypto: amlogic - enable working on big endian kernel
    crypto: sun8i-ce - enable working on big endian
    crypto: mips/chacha - select CRYPTO_SKCIPHER, not CRYPTO_BLKCIPHER
    hwrng: ks-sa - Enable COMPILE_TEST
    crypto: essiv - remove redundant null pointer check before kfree
    crypto: atmel-aes - Change data type for "lastc" buffer
    crypto: atmel-tdes - Set the IV after {en,de}crypt
    crypto: sun4i-ss - fix big endian issues
    crypto: sun4i-ss - hide the Invalid keylen message
    crypto: sun4i-ss - use crypto_ahash_digestsize
    crypto: sun4i-ss - remove dependency on not 64BIT
    crypto: sun4i-ss - Fix 64-bit size_t warnings on sun4i-ss-hash.c
    MAINTAINERS: Add maintainer for HiSilicon SEC V2 driver
    crypto: hisilicon - add DebugFS for HiSilicon SEC
    Documentation: add DebugFS doc for HiSilicon SEC
    crypto: hisilicon - add SRIOV for HiSilicon SEC
    ...

    Linus Torvalds
     
  • Pull MIPS updates from Paul Burton:
    "The main MIPS changes for 5.5:

    - Atomics-related code sees some rework & cleanup, most notably
    allowing Loongson LL/SC errata workarounds to be more bulletproof &
    their correctness to be checked at build time.

    - Command line setup code is simplified somewhat, resolving various
    corner cases.

    - MIPS kernels can now be built with kcov code coverage support.

    - We can now build with CONFIG_FORTIFY_SOURCE=y.

    - Miscellaneous cleanups.

    And some platform specific changes:

    - We now disable some broken TLB functionality on certain Ingenic
    systems, and JZ4780 systems gain some devicetree nodes to support
    more devices.

    - Loongson support sees a number of cleanups, and we gain initial
    support for Loongson 3A R4 systems.

    - We gain support for MediaTek MT7688-based GARDENA Smart Gateway
    systems.

    - SGI IP27 (Origin 2*) see a number of fixes, cleanups &
    simplifications.

    - SGI IP30 (Octane) systems are now supported"

    * tag 'mips_5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (107 commits)
    MIPS: SGI-IP27: Enable ethernet phy on second Origin 200 module
    MIPS: PCI: Fix fake subdevice ID for IOC3
    MIPS: Ingenic: Disable abandoned HPTLB function.
    MIPS: PCI: remember nasid changed by set interrupt affinity
    MIPS: SGI-IP27: Fix crash, when CPUs are disabled via nr_cpus parameter
    mips: add support for folded p4d page tables
    mips: drop __pXd_offset() macros that duplicate pXd_index() ones
    mips: fix build when "48 bits virtual memory" is enabled
    MIPS: math-emu: Reuse name array in debugfs_fpuemu()
    MIPS: allow building with kcov coverage
    MIPS: Loongson64: Drop setup_pcimap
    MIPS: Loongson2ef: Convert to early_printk_8250
    MIPS: Drop CPU_SUPPORTS_UNCACHED_ACCELERATED
    MIPS: Loongson{2ef, 32, 64} convert to generic fw cmdline
    MIPS: Drop pmon.h
    MIPS: Loongson: Unify LOONGSON3/LOONGSON64 Kconfig usage
    MIPS: Loongson: Rename LOONGSON1 to LOONGSON32
    MIPS: Loongson: Fix return value of loongson_hwmon_init
    MIPS: add support for SGI Octane (IP30)
    MIPS: PCI: make phys_to_dma/dma_to_phys for pci-xtalk-bridge common
    ...

    Linus Torvalds
     

24 Nov, 2019

2 commits

  • PROM only enables ethernet PHY on first Origin 200 module, so we must
    do it ourselves for the second module.

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Paul Burton
    Cc: Jakub Kicinski
    Cc: Jonathan Corbet
    Cc: Ralf Baechle
    Cc: Paul Burton
    Cc: James Hogan
    Cc: Lee Jones
    Cc: David S. Miller
    Cc: Srinivas Kandagatla
    Cc: Alessandro Zummo
    Cc: Alexandre Belloni
    Cc: Greg Kroah-Hartman
    Cc: Jiri Slaby
    Cc: linux-doc@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mips@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Cc: linux-rtc@vger.kernel.org
    Cc: linux-serial@vger.kernel.org

    Thomas Bogendoerfer
     
  • Generation of fake subdevice ID had vendor and device ID swapped.

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Paul Burton
    Cc: Jakub Kicinski
    Cc: Jonathan Corbet
    Cc: Ralf Baechle
    Cc: Paul Burton
    Cc: James Hogan
    Cc: Lee Jones
    Cc: David S. Miller
    Cc: Srinivas Kandagatla
    Cc: Alessandro Zummo
    Cc: Alexandre Belloni
    Cc: Greg Kroah-Hartman
    Cc: Jiri Slaby
    Cc: linux-doc@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mips@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Cc: linux-rtc@vger.kernel.org
    Cc: linux-serial@vger.kernel.org

    Thomas Bogendoerfer
     

23 Nov, 2019

7 commits

  • Since MIPS architecture has a sparse syscall array, select the
    HAVE_SPARSE_SYSCALL_NR to save space.

    Link: http://lkml.kernel.org/r/20191115234314.21599-2-hnaveed@wavecomp.com

    Signed-off-by: Hassan Naveed
    Reviewed-by: Paul Burton
    Signed-off-by: Steven Rostedt (VMware)

    Hassan Naveed
     
  • JZ4760/JZ4770/JZ4775/X1000/X1500 has an abandoned huge page tlb,
    this mode is not compatible with the MIPS standard, it will cause
    tlbmiss and into an infinite loop (line 21 in the tlb-funcs.S)
    when starting the init process. write 0xa9000000 to cp0 register 5
    sel 4 to disable this function to prevent getting stuck. Confirmed
    by Ingenic, this operation will not adversely affect processors
    without HPTLB function.

    Signed-off-by: Zhou Yanjie
    Acked-by: Paul Cercueil
    Signed-off-by: Paul Burton
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: ralf@linux-mips.org
    Cc: jhogan@kernel.org
    Cc: jiaxun.yang@flygoat.com
    Cc: gregkh@linuxfoundation.org
    Cc: malat@debian.org
    Cc: tglx@linutronix.de
    Cc: chenhc@lemote.com

    Zhou Yanjie
     
  • When changing interrupt affinity remember the possible changed nasid,
    otherwise an interrupt deactivate/activate sequence will incorrectly
    setup interrupt.

    Fixes: e6308b6d35ea ("MIPS: SGI-IP27: abstract chipset irq from bridge")
    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Paul Burton
    Cc: Ralf Baechle
    Cc: James Hogan
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org

    Thomas Bogendoerfer
     
  • If number of CPUs are limited by the kernel commandline parameter nr_cpus
    assignment of interrupts accourding to numa rules might not be possibe.
    As a fallback use one of the online CPUs as interrupt destination.

    Fixes: 69a07a41d908 ("MIPS: SGI-IP27: rework HUB interrupts")
    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Paul Burton
    Cc: Ralf Baechle
    Cc: James Hogan
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org

    Thomas Bogendoerfer
     
  • Implement primitives necessary for the 4th level folding, add walks of p4d
    level where appropriate, replace 5leve-fixup.h with pgtable-nop4d.h and
    drop usage of __ARCH_USE_5LEVEL_HACK.

    Signed-off-by: Mike Rapoport
    Signed-off-by: Paul Burton
    Cc: Ralf Baechle
    Cc: James Hogan
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mm@kvack.org
    Cc: Mike Rapoport

    Mike Rapoport
     
  • The __pXd_offset() macros are identical to the pXd_index() macros and there
    is no point to keep both of them. All architectures define and use
    pXd_index() so let's keep only those to make mips consistent with the rest
    of the kernel.

    Signed-off-by: Mike Rapoport
    Signed-off-by: Paul Burton
    Cc: Ralf Baechle
    Cc: James Hogan
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mm@kvack.org
    Cc: Mike Rapoport

    Mike Rapoport
     
  • With CONFIG_MIPS_VA_BITS_48=y the build fails miserably:

    CC arch/mips/kernel/asm-offsets.s
    In file included from arch/mips/include/asm/pgtable.h:644,
    from include/linux/mm.h:99,
    from arch/mips/kernel/asm-offsets.c:15:
    include/asm-generic/pgtable.h:16:2: error: #error CONFIG_PGTABLE_LEVELS is not consistent with __PAGETABLE_{P4D,PUD,PMD}_FOLDED
    #error CONFIG_PGTABLE_LEVELS is not consistent with __PAGETABLE_{P4D,PUD,PMD}_FOLDED
    ^~~~~
    include/asm-generic/pgtable.h:390:28: error: unknown type name 'p4d_t'; did you mean 'pmd_t'?
    static inline int p4d_same(p4d_t p4d_a, p4d_t p4d_b)
    ^~~~~
    pmd_t

    [ ... more such errors ... ]

    scripts/Makefile.build:99: recipe for target 'arch/mips/kernel/asm-offsets.s' failed
    make[2]: *** [arch/mips/kernel/asm-offsets.s] Error 1

    This happens because when CONFIG_MIPS_VA_BITS_48 enables 4th level of the
    page tables, but neither pgtable-nop4d.h nor 5level-fixup.h are included to
    cope with the 5th level.

    Replace #ifdef conditions around includes of the pgtable-nop{m,u}d.h with
    explicit CONFIG_PGTABLE_LEVELS and add include of 5level-fixup.h for the
    case when CONFIG_PGTABLE_LEVELS==4

    Signed-off-by: Mike Rapoport
    Signed-off-by: Paul Burton
    Cc: Ralf Baechle
    Cc: James Hogan
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mm@kvack.org
    Cc: Mike Rapoport

    Mike Rapoport
     

22 Nov, 2019

1 commit

  • Using a mask to represent bus DMA constraints has a set of limitations.
    The biggest one being it can only hold a power of two (minus one). The
    DMA mapping code is already aware of this and treats dev->bus_dma_mask
    as a limit. This quirk is already used by some architectures although
    still rare.

    With the introduction of the Raspberry Pi 4 we've found a new contender
    for the use of bus DMA limits, as its PCIe bus can only address the
    lower 3GB of memory (of a total of 4GB). This is impossible to represent
    with a mask. To make things worse the device-tree code rounds non power
    of two bus DMA limits to the next power of two, which is unacceptable in
    this case.

    In the light of this, rename dev->bus_dma_mask to dev->bus_dma_limit all
    over the tree and treat it as such. Note that dev->bus_dma_limit should
    contain the higher accessible DMA address.

    Signed-off-by: Nicolas Saenz Julienne
    Reviewed-by: Robin Murphy
    Signed-off-by: Christoph Hellwig

    Nicolas Saenz Julienne
     

21 Nov, 2019

2 commits

  • Currently each architectures that wants to override dma_to_phys and
    phys_to_dma also has to provide dma_capable. But there isn't really
    any good reason for that. powerpc and mips just have copies of the
    generic one minus the latests fix, and the arm one was the inspiration
    for said fix, but misses the bus_dma_mask handling.
    Make all architectures use the generic version instead.

    Signed-off-by: Christoph Hellwig
    Acked-by: Michael Ellerman (powerpc)
    Reviewed-by: Nicolas Saenz Julienne

    Christoph Hellwig
     
  • These are pure cache maintainance routines, so drop the unused
    struct device argument.

    Signed-off-by: Christoph Hellwig
    Suggested-by: Daniel Vetter

    Christoph Hellwig
     

17 Nov, 2019

3 commits

  • This is a straight import of the OpenSSL/CRYPTOGAMS Poly1305 implementation for
    MIPS authored by Andy Polyakov, a prior 64-bit only version of which has been
    contributed by him to the OpenSSL project. The file 'poly1305-mips.pl' is taken
    straight from this upstream GitHub repository [0] at commit
    d22ade312a7af958ec955620b0d241cf42c37feb, and already contains all the changes
    required to build it as part of a Linux kernel module.

    [0] https://github.com/dot-asm/cryptogams

    Co-developed-by: Andy Polyakov
    Signed-off-by: Andy Polyakov
    Co-developed-by: René van Dorst
    Signed-off-by: René van Dorst
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu

    Ard Biesheuvel
     
  • This integrates the accelerated MIPS 32r2 implementation of ChaCha
    into both the API and library interfaces of the kernel crypto stack.

    The significance of this is that, in addition to becoming available
    as an accelerated library implementation, it can also be used by
    existing crypto API code such as Adiantum (for block encryption on
    ultra low performance cores) or IPsec using chacha20poly1305. These
    are use cases that have already opted into using the abstract crypto
    API. In order to support Adiantum, the core assembler routine has
    been adapted to take the round count as a function argument rather
    than hardcoding it to 20.

    Co-developed-by: René van Dorst
    Signed-off-by: René van Dorst
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu

    Ard Biesheuvel
     
  • This imports the accelerated MIPS 32r2 ChaCha20 implementation from the
    Zinc patch set.

    Co-developed-by: René van Dorst
    Signed-off-by: René van Dorst
    Signed-off-by: Jason A. Donenfeld
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu

    Jason A. Donenfeld
     

16 Nov, 2019

1 commit


15 Nov, 2019

3 commits

  • We store elapsed time for a crashed process in struct elf_prstatus using
    'timeval' structures. Once glibc starts using 64-bit time_t, this becomes
    incompatible with the kernel's idea of timeval since the structure layout
    no longer matches on 32-bit architectures.

    This changes the definition of the elf_prstatus structure to use
    __kernel_old_timeval instead, which is hardcoded to the currently used
    binary layout. There is no risk of overflow in y2038 though, because
    the time values are all relative times, and can store up to 68 years
    of process elapsed time.

    There is a risk of applications breaking at build time when they
    use the new kernel headers and expect the type to be exactly 'timeval'
    rather than a structure that has the same fields as before. Those
    applications have to be modified to deal with 64-bit time_t anyway.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • The time_t definition may differ between user space and kernel space,
    so replace time_t with an unambiguous 'long' for the mips and sparc.

    The same structures also contain 'off_t', which has the same problem,
    so replace that as well on those two architectures and powerpc.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • There are two structures based on time_t that conflict between libc and
    kernel: timeval and timespec. Both are now renamed to __kernel_old_timeval
    and __kernel_old_timespec.

    For time_t, the old typedef is still __kernel_time_t. There is nothing
    wrong with that name, but it would be nice to not use that going forward
    as this type is used almost only in deprecated interfaces because of
    the y2038 overflow.

    In the IPC headers (msgbuf.h, sembuf.h, shmbuf.h), __kernel_time_t is only
    used for the 64-bit variants, which are not deprecated.

    Change these to a plain 'long', which is the same type as __kernel_time_t
    on all 64-bit architectures anyway, to reduce the number of users of the
    old type.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

14 Nov, 2019

1 commit

  • Some versions of SoC MT7621 have three PCI express hosts. Some boards
    make use of those PCI through the staging driver mt7621-pci. Recently
    PCI support has been removed from MT7621 Soc kernel configuration due
    to a build error. This makes imposible to compile staging driver and
    produces a regression for gnubee based boards. Enable support for PCI
    again but enable it only if staging mt7621-pci driver is selected.

    Fixes: c4d48cf5e2f0 ("MIPS: ralink: deactivate PCI support for SOC_MT7621")
    Cc: Hauke Mehrtens
    Cc: ralf@linux-mips.org
    Cc: jhogan@kernel.org
    Cc: john@phrozen.org
    Cc: NeilBrown
    Cc: linux-mips@vger.kernel.org
    Signed-off-by: Sergio Paracuellos
    Link: https://lore.kernel.org/r/20191019081233.7337-1-sergio.paracuellos@gmail.com
    Signed-off-by: Greg Kroah-Hartman

    Sergio Paracuellos
     

12 Nov, 2019

1 commit

  • The FPU_STAT_CREATE_EX() macro used 114 times in debugfs_fpuemu()
    declares a 32 byte char array to hold the name of a debugfs file. Since
    each use of the macro declares a new char array out of the scope of all
    the other uses, we end up with an unnecessarily large stack frame of
    3648 bytes (ie. 114*32) plus the size of 2 pointers
    (fpuemu_debugfs_base_dir & fpuemu_debugfs_inst_dir). This is enough to
    trigger the frame size warnings from GCC in common configurations.

    Avoid the unnecessary stack bloat by using a single name char array
    which each usage of FPU_STAT_CREATE_EX() will reinitialize via the
    strcpy() in adjust_instruction_counter_name().

    Signed-off-by: Paul Burton
    Reported-by: kbuild test robot
    URL: https://lore.kernel.org/linux-mips/201911090929.xvXYuHUz%25lkp@intel.com/

    Paul Burton