20 Mar, 2016

2 commits

  • Pull DeviceTree updates from Rob Herring:

    - new tool 'dtx_diff' to diff DT files

    - sync kernel's dtc/libfdt to current dtc repo master

    - fix for reserved memory regions located in highmem

    - document standard unit suffixes for DT properties

    - various DT binding doc updates

    * tag 'devicetree-for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
    of: Add vendor prefix for eGalax_eMPIA Technology Inc
    Input: ads7846: Add description how to use internal reference (ADS7846)
    ARM: realview: add EB syscon variants to bindings
    devicetree: bindings: ARM: Use "uV" for micro-volt
    serial: fsl-imx-uart: Fix typo in fsl,dte-mode description
    of: add 'const' for of_property_*_string*() parameter '*np'
    of/unittest: fix infinite loop in of_unittest_destroy_tracked_overlays()
    of: alloc anywhere from memblock if range not specified
    kbuild: Allow using host dtc instead of kernel's copy
    of: resolver: Add missing of_node_get and of_node_put
    of: Add United Radiant Technology Corporation vendor prefix
    dt/bindings: add documentation on standard property unit suffixes
    scripts/dtc: Update to upstream commit b06e55c88b9b
    ARM: boot: Add an implementation of strnlen for libfdt
    scripts/dtc: dtx_diff - add info to error message
    dtc: create tool to diff device trees

    Linus Torvalds
     
  • Pull networking updates from David Miller:
    "Highlights:

    1) Support more Realtek wireless chips, from Jes Sorenson.

    2) New BPF types for per-cpu hash and arrap maps, from Alexei
    Starovoitov.

    3) Make several TCP sysctls per-namespace, from Nikolay Borisov.

    4) Allow the use of SO_REUSEPORT in order to do per-thread processing
    of incoming TCP/UDP connections. The muxing can be done using a
    BPF program which hashes the incoming packet. From Craig Gallek.

    5) Add a multiplexer for TCP streams, to provide a messaged based
    interface. BPF programs can be used to determine the message
    boundaries. From Tom Herbert.

    6) Add 802.1AE MACSEC support, from Sabrina Dubroca.

    7) Avoid factorial complexity when taking down an inetdev interface
    with lots of configured addresses. We were doing things like
    traversing the entire address less for each address removed, and
    flushing the entire netfilter conntrack table for every address as
    well.

    8) Add and use SKB bulk free infrastructure, from Jesper Brouer.

    9) Allow offloading u32 classifiers to hardware, and implement for
    ixgbe, from John Fastabend.

    10) Allow configuring IRQ coalescing parameters on a per-queue basis,
    from Kan Liang.

    11) Extend ethtool so that larger link mode masks can be supported.
    From David Decotigny.

    12) Introduce devlink, which can be used to configure port link types
    (ethernet vs Infiniband, etc.), port splitting, and switch device
    level attributes as a whole. From Jiri Pirko.

    13) Hardware offload support for flower classifiers, from Amir Vadai.

    14) Add "Local Checksum Offload". Basically, for a tunneled packet
    the checksum of the outer header is 'constant' (because with the
    checksum field filled into the inner protocol header, the payload
    of the outer frame checksums to 'zero'), and we can take advantage
    of that in various ways. From Edward Cree"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1548 commits)
    bonding: fix bond_get_stats()
    net: bcmgenet: fix dma api length mismatch
    net/mlx4_core: Fix backward compatibility on VFs
    phy: mdio-thunder: Fix some Kconfig typos
    lan78xx: add ndo_get_stats64
    lan78xx: handle statistics counter rollover
    RDS: TCP: Remove unused constant
    RDS: TCP: Add sysctl tunables for sndbuf/rcvbuf on rds-tcp socket
    net: smc911x: convert pxa dma to dmaengine
    team: remove duplicate set of flag IFF_MULTICAST
    bonding: remove duplicate set of flag IFF_MULTICAST
    net: fix a comment typo
    ethernet: micrel: fix some error codes
    ip_tunnels, bpf: define IP_TUNNEL_OPTS_MAX and use it
    bpf, dst: add and use dst_tclassid helper
    bpf: make skb->tc_classid also readable
    net: mvneta: bm: clarify dependencies
    cls_bpf: reset class and reuse major in da
    ldmvsw: Checkpatch sunvnet.c and sunvnet_common.c
    ldmvsw: Add ldmvsw.c driver code
    ...

    Linus Torvalds
     

18 Mar, 2016

2 commits

  • Pull arm64 updates from Catalin Marinas:
    "Here are the main arm64 updates for 4.6. There are some relatively
    intrusive changes to support KASLR, the reworking of the kernel
    virtual memory layout and initial page table creation.

    Summary:

    - Initial page table creation reworked to avoid breaking large block
    mappings (huge pages) into smaller ones. The ARM architecture
    requires break-before-make in such cases to avoid TLB conflicts but
    that's not always possible on live page tables

    - Kernel virtual memory layout: the kernel image is no longer linked
    to the bottom of the linear mapping (PAGE_OFFSET) but at the bottom
    of the vmalloc space, allowing the kernel to be loaded (nearly)
    anywhere in physical RAM

    - Kernel ASLR: position independent kernel Image and modules being
    randomly mapped in the vmalloc space with the randomness is
    provided by UEFI (efi_get_random_bytes() patches merged via the
    arm64 tree, acked by Matt Fleming)

    - Implement relative exception tables for arm64, required by KASLR
    (initial code for ARCH_HAS_RELATIVE_EXTABLE added to lib/extable.c
    but actual x86 conversion to deferred to 4.7 because of the merge
    dependencies)

    - Support for the User Access Override feature of ARMv8.2: this
    allows uaccess functions (get_user etc.) to be implemented using
    LDTR/STTR instructions. Such instructions, when run by the kernel,
    perform unprivileged accesses adding an extra level of protection.
    The set_fs() macro is used to "upgrade" such instruction to
    privileged accesses via the UAO bit

    - Half-precision floating point support (part of ARMv8.2)

    - Optimisations for CPUs with or without a hardware prefetcher (using
    run-time code patching)

    - copy_page performance improvement to deal with 128 bytes at a time

    - Sanity checks on the CPU capabilities (via CPUID) to prevent
    incompatible secondary CPUs from being brought up (e.g. weird
    big.LITTLE configurations)

    - valid_user_regs() reworked for better sanity check of the
    sigcontext information (restored pstate information)

    - ACPI parking protocol implementation

    - CONFIG_DEBUG_RODATA enabled by default

    - VDSO code marked as read-only

    - DEBUG_PAGEALLOC support

    - ARCH_HAS_UBSAN_SANITIZE_ALL enabled

    - Erratum workaround Cavium ThunderX SoC

    - set_pte_at() fix for PROT_NONE mappings

    - Code clean-ups"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (99 commits)
    arm64: kasan: Fix zero shadow mapping overriding kernel image shadow
    arm64: kasan: Use actual memory node when populating the kernel image shadow
    arm64: Update PTE_RDONLY in set_pte_at() for PROT_NONE permission
    arm64: Fix misspellings in comments.
    arm64: efi: add missing frame pointer assignment
    arm64: make mrs_s prefixing implicit in read_cpuid
    arm64: enable CONFIG_DEBUG_RODATA by default
    arm64: Rework valid_user_regs
    arm64: mm: check at build time that PAGE_OFFSET divides the VA space evenly
    arm64: KVM: Move kvm_call_hyp back to its original localtion
    arm64: mm: treat memstart_addr as a signed quantity
    arm64: mm: list kernel sections in order
    arm64: lse: deal with clobbered IP registers after branch via PLT
    arm64: mm: dump: Use VA_START directly instead of private LOWEST_ADDR
    arm64: kconfig: add submenu for 8.2 architectural features
    arm64: kernel: acpi: fix ioremap in ACPI parking protocol cpu_postboot
    arm64: Add support for Half precision floating point
    arm64: Remove fixmap include fragility
    arm64: Add workaround for Cavium erratum 27456
    arm64: mm: Mark .rodata as RO
    ...

    Linus Torvalds
     
  • Pull tty/serial updates from Greg KH:
    "Here's the big tty/serial driver pull request for 4.6-rc1.

    Lots of changes in here, Peter has been on a tear again, with lots of
    refactoring and bugs fixes, many thanks to the great work he has been
    doing. Lots of driver updates and fixes as well, full details in the
    shortlog.

    All have been in linux-next for a while with no reported issues"

    * tag 'tty-4.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (220 commits)
    serial: 8250: describe CONFIG_SERIAL_8250_RSA
    serial: samsung: optimize UART rx fifo access routine
    serial: pl011: add mark/space parity support
    serial: sa1100: make sa1100_register_uart_fns a function
    tty: serial: 8250: add MOXA Smartio MUE boards support
    serial: 8250: convert drivers to use up_to_u8250p()
    serial: 8250/mediatek: fix building with SERIAL_8250=m
    serial: 8250/ingenic: fix building with SERIAL_8250=m
    serial: 8250/uniphier: fix modular build
    Revert "drivers/tty/serial: make 8250/8250_ingenic.c explicitly non-modular"
    Revert "drivers/tty/serial: make 8250/8250_mtk.c explicitly non-modular"
    serial: mvebu-uart: initial support for Armada-3700 serial port
    serial: mctrl_gpio: Add missing module license
    serial: ifx6x60: avoid uninitialized variable use
    tty/serial: at91: fix bad offset for UART timeout register
    tty/serial: at91: restore dynamic driver binding
    serial: 8250: Add hardware dependency to RT288X option
    TTY, devpts: document pty count limiting
    tty: goldfish: support platform_device with id -1
    drivers: tty: goldfish: Add device tree bindings
    ...

    Linus Torvalds
     

17 Mar, 2016

1 commit

  • Pull PCI updates from Bjorn Helgaas:
    "PCI changes for v4.6:

    Enumeration:
    - Disable IO/MEM decoding for devices with non-compliant BARs (Bjorn Helgaas)
    - Mark Broadwell-EP Home Agent & PCU as having non-compliant BARs (Bjorn Helgaas

    Resource management:
    - Mark shadow copy of VGA ROM as IORESOURCE_PCI_FIXED (Bjorn Helgaas)
    - Don't assign or reassign immutable resources (Bjorn Helgaas)
    - Don't enable/disable ROM BAR if we're using a RAM shadow copy (Bjorn Helgaas)
    - Set ROM shadow location in arch code, not in PCI core (Bjorn Helgaas)
    - Remove arch-specific IORESOURCE_ROM_SHADOW size from sysfs (Bjorn Helgaas)
    - ia64: Use ioremap() instead of open-coded equivalent (Bjorn Helgaas)
    - ia64: Keep CPU physical (not virtual) addresses in shadow ROM resource (Bjorn Helgaas)
    - MIPS: Keep CPU physical (not virtual) addresses in shadow ROM resource (Bjorn Helgaas)
    - Remove unused IORESOURCE_ROM_COPY and IORESOURCE_ROM_BIOS_COPY (Bjorn Helgaas)
    - Don't leak memory if sysfs_create_bin_file() fails (Bjorn Helgaas)
    - rcar: Remove PCI_PROBE_ONLY handling (Lorenzo Pieralisi)
    - designware: Remove PCI_PROBE_ONLY handling (Lorenzo Pieralisi)

    Virtualization:
    - Wait for up to 1000ms after FLR reset (Alex Williamson)
    - Support SR-IOV on any function type (Kelly Zytaruk)
    - Add ACS quirk for all Cavium devices (Manish Jaggi)

    AER:
    - Rename pci_ops_aer to aer_inj_pci_ops (Bjorn Helgaas)
    - Restore pci_ops pointer while calling original pci_ops (David Daney)
    - Fix aer_inject error codes (Jean Delvare)
    - Use dev_warn() in aer_inject (Jean Delvare)
    - Log actual error causes in aer_inject (Jean Delvare)
    - Log aer_inject error injections (Jean Delvare)

    VPD:
    - Prevent VPD access for buggy devices (Babu Moger)
    - Move pci_read_vpd() and pci_write_vpd() close to other VPD code (Bjorn Helgaas)
    - Move pci_vpd_release() from header file to pci/access.c (Bjorn Helgaas)
    - Remove struct pci_vpd_ops.release function pointer (Bjorn Helgaas)
    - Rename VPD symbols to remove unnecessary "pci22" (Bjorn Helgaas)
    - Fold struct pci_vpd_pci22 into struct pci_vpd (Bjorn Helgaas)
    - Sleep rather than busy-wait for VPD access completion (Bjorn Helgaas)
    - Update VPD definitions (Hannes Reinecke)
    - Allow access to VPD attributes with size 0 (Hannes Reinecke)
    - Determine actual VPD size on first access (Hannes Reinecke)

    Generic host bridge driver:
    - Move structure definitions to separate header file (David Daney)
    - Add pci_host_common_probe(), based on gen_pci_probe() (David Daney)
    - Expose pci_host_common_probe() for use by other drivers (David Daney)

    Altera host bridge driver:
    - Fix altera_pcie_link_is_up() (Ley Foon Tan)

    Cavium ThunderX host bridge driver:
    - Add PCIe host driver for ThunderX processors (David Daney)
    - Add driver for ThunderX-pass{1,2} on-chip devices (David Daney)

    Freescale i.MX6 host bridge driver:
    - Add DT bindings to configure PHY Tx driver settings (Justin Waters)
    - Move imx6_pcie_reset_phy() near other PHY handling functions (Lucas Stach)
    - Move PHY reset into imx6_pcie_establish_link() (Lucas Stach)
    - Remove broken Gen2 workaround (Lucas Stach)
    - Move link up check into imx6_pcie_wait_for_link() (Lucas Stach)

    Freescale Layerscape host bridge driver:
    - Add "fsl,ls2085a-pcie" compatible ID (Yang Shi)

    Intel VMD host bridge driver:
    - Attach VMD resources to parent domain's resource tree (Jon Derrick)
    - Set bus resource start to 0 (Keith Busch)

    Microsoft Hyper-V host bridge driver:
    - Add fwnode_handle to x86 pci_sysdata (Jake Oshins)
    - Look up IRQ domain by fwnode_handle (Jake Oshins)
    - Add paravirtual PCI front-end for Microsoft Hyper-V VMs (Jake Oshins)

    NVIDIA Tegra host bridge driver:
    - Add pci_ops.{add,remove}_bus() callbacks (Thierry Reding)
    - Implement ->{add,remove}_bus() callbacks (Thierry Reding)
    - Remove unused struct tegra_pcie.num_ports field (Thierry Reding)
    - Track bus -> CPU mapping (Thierry Reding)
    - Remove misleading PHYS_OFFSET (Thierry Reding)

    Renesas R-Car host bridge driver:
    - Depend on ARCH_RENESAS, not ARCH_SHMOBILE (Simon Horman)

    Synopsys DesignWare host bridge driver:
    - ARC: Add PCI support (Joao Pinto)
    - Add generic dw_pcie_wait_for_link() (Joao Pinto)
    - Add default link up check if sub-driver doesn't override (Joao Pinto)
    - Add driver for prototyping kits based on ARC SDP (Joao Pinto)

    TI Keystone host bridge driver:
    - Defer probing if devm_phy_get() returns -EPROBE_DEFER (Shawn Lin)

    Xilinx AXI host bridge driver:
    - Use of_pci_get_host_bridge_resources() to parse DT (Bharat Kumar Gogada)
    - Remove dependency on ARM-specific struct hw_pci (Bharat Kumar Gogada)
    - Don't call pci_fixup_irqs() on Microblaze (Bharat Kumar Gogada)
    - Update Zynq binding with Microblaze node (Bharat Kumar Gogada)
    - microblaze: Support generic Xilinx AXI PCIe Host Bridge IP driver (Bharat Kumar Gogada)

    Xilinx NWL host bridge driver:
    - Add support for Xilinx NWL PCIe Host Controller (Bharat Kumar Gogada)

    Miscellaneous:
    - Check device_attach() return value always (Bjorn Helgaas)
    - Move pci_set_flags() from asm-generic/pci-bridge.h to linux/pci.h (Bjorn Helgaas)
    - Remove includes of empty asm-generic/pci-bridge.h (Bjorn Helgaas)
    - ARM64: Remove generated include of asm-generic/pci-bridge.h (Bjorn Helgaas)
    - Remove empty asm-generic/pci-bridge.h (Bjorn Helgaas)
    - Remove includes of asm/pci-bridge.h (Bjorn Helgaas)
    - Consolidate PCI DMA constants and interfaces in linux/pci-dma-compat.h (Bjorn Helgaas)
    - unicore32: Remove unused HAVE_ARCH_PCI_SET_DMA_MASK definition (Bjorn Helgaas)
    - Cleanup pci/pcie/Kconfig whitespace (Andreas Ziegler)
    - Include pci/hotplug Kconfig directly from pci/Kconfig (Bjorn Helgaas)
    - Include pci/pcie/Kconfig directly from pci/Kconfig (Bogicevic Sasa)
    - frv: Remove stray pci_{alloc,free}_consistent() declaration (Christoph Hellwig)
    - Move pci_dma_* helpers to common code (Christoph Hellwig)
    - Add PCI_CLASS_SERIAL_USB_DEVICE definition (Heikki Krogerus)
    - Add QEMU top-level IDs for (sub)vendor & device (Robin H. Johnson)
    - Fix broken URL for Dell biosdevname (Naga Venkata Sai Indubhaskar Jupudi)"

    * tag 'pci-v4.6-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (94 commits)
    PCI: Add PCI_CLASS_SERIAL_USB_DEVICE definition
    PCI: designware: Add driver for prototyping kits based on ARC SDP
    PCI: designware: Add default link up check if sub-driver doesn't override
    PCI: designware: Add generic dw_pcie_wait_for_link()
    PCI: Cleanup pci/pcie/Kconfig whitespace
    PCI: Simplify pci_create_attr() control flow
    PCI: Don't leak memory if sysfs_create_bin_file() fails
    PCI: Simplify sysfs ROM cleanup
    PCI: Remove unused IORESOURCE_ROM_COPY and IORESOURCE_ROM_BIOS_COPY
    MIPS: Loongson 3: Keep CPU physical (not virtual) addresses in shadow ROM resource
    MIPS: Loongson 3: Use temporary struct resource * to avoid repetition
    ia64/PCI: Keep CPU physical (not virtual) addresses in shadow ROM resource
    ia64/PCI: Use ioremap() instead of open-coded equivalent
    ia64/PCI: Use temporary struct resource * to avoid repetition
    PCI: Clean up pci_map_rom() whitespace
    PCI: Remove arch-specific IORESOURCE_ROM_SHADOW size from sysfs
    PCI: thunder: Add driver for ThunderX-pass{1,2} on-chip devices
    PCI: thunder: Add PCIe host driver for ThunderX processors
    PCI: generic: Expose pci_host_common_probe() for use by other drivers
    PCI: generic: Add pci_host_common_probe(), based on gen_pci_probe()
    ...

    Linus Torvalds
     

15 Mar, 2016

3 commits


09 Mar, 2016

1 commit


04 Mar, 2016

3 commits

  • The of_property_{read,count,match}_string* family of functions never
    modify the struct device_node pointer that is passed in, so there is no
    reason for it to be non-const. Equivalent functions for all other types
    already take a 'const struct device_node *np'.

    Signed-off-by: David Rivshin
    Signed-off-by: Rob Herring

    David Rivshin
     
  • of_overlay_destroy() can return `-ENODEV' error code once it
    failed to find the requested overlay in `ov_idr'. However,
    of_unittest_destroy_tracked_overlays() does not handle this
    error code correctly and continues to call of_overlay_destroy()
    on the 'missing' overlay over and over again. This results in
    a printk flood

    [..]
    [ 33.497583] of_overlay_destroy: Could not find overlay #6
    [ 33.497583] of_overlay_destroy: Could not find overlay #6
    [ 33.497584] ### dt-test ### of_unittest_destroy_tracked_overlays: overlay destroy failed for #6
    [ 33.497584] ### dt-test ### of_unittest_destroy_tracked_overlays: overlay destroy failed for #6
    [ 33.497586] of_overlay_destroy: Could not find overlay #6
    [ 33.497586] of_overlay_destroy: Could not find overlay #6
    [ 33.497587] ### dt-test ### of_unittest_destroy_tracked_overlays: overlay destroy failed for #6
    [ 33.497587] ### dt-test ### of_unittest_destroy_tracked_overlays: overlay destroy failed for #6
    [..]

    which is not really good due to printk design, and can lead to soft
    lockups, hard lockups, etc. (depending on the context console_unlock()
    is being called from). The problem has bee observed in real life
    and reported by Ying Huang.

    This patch does not address the root cause of missing overlay in
    `ov_idr', it fixes the endless loop only.

    Signed-off-by: Sergey Senozhatsky
    Reported-by: kernel test robot
    Link: lkml.kernel.org/r/87fuwk1c0o.fsf@yhuang-dev.intel.com
    Signed-off-by: Rob Herring

    Sergey Senozhatsky
     
  • early_init_dt_alloc_reserved_memory_arch passes end as 0 to
    __memblock_alloc_base, when limits are not specified. But
    __memblock_alloc_base takes end value of 0 as MEMBLOCK_ALLOC_ACCESSIBLE
    and limits the end to memblock.current_limit. This results in regions
    never being placed in HIGHMEM area, for e.g. CMA.
    Let __memblock_alloc_base allocate from anywhere in memory if limits are
    not specified.

    Acked-by: Marek Szyprowski
    Signed-off-by: Vinayak Menon
    Cc: stable@vger.kernel.org
    Signed-off-by: Rob Herring

    Vinayak Menon
     

02 Mar, 2016

2 commits


19 Feb, 2016

2 commits

  • Since architectures may not yet have their linear mapping up and running
    when the initrd address is discovered from the DT, factor out the
    assignment of initrd_start and initrd_end, so that an architecture can
    override it and use the translation it needs.

    Signed-off-by: Ard Biesheuvel
    Acked-by: Rob Herring
    Signed-off-by: Catalin Marinas

    Ard Biesheuvel
     
  • By default, early_init_dt_add_memory_arch() ignores memory below
    the base of the kernel image since it won't be addressable via the
    linear mapping. However, this is not appropriate anymore once we
    decouple the kernel text mapping from the linear mapping, so archs
    may want to drop the low limit entirely. So allow the minimum to be
    overridden by setting MIN_MEMBLOCK_ADDR.

    Acked-by: Mark Rutland
    Acked-by: Rob Herring
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Catalin Marinas

    Ard Biesheuvel
     

18 Feb, 2016

1 commit


15 Feb, 2016

1 commit


14 Feb, 2016

1 commit

  • In __of_find_node_by_full_name, add an of_node_get when detecting the
    desired element, to ensure that it ends up with a reference count that is
    one greater than on entering the function.

    Also in __of_find_node_by_full_name, add an of_node_put on breaking
    out of the for_each_child_of_node loop, to ensure that the reference
    count of the returned value is not double incremented. This change
    was made using Coccinelle.

    The semantic patch used for this is as follows:

    //
    @@
    expression e;
    local idexpression n;
    @@

    for_each_child_of_node(..., n) {
    ... when != of_node_put(n)
    when != e = n
    (
    return n;
    |
    + of_node_put(n);
    ? return ...;
    )
    ...
    }
    //
    Signed-off-by: Rob Herring

    Amitoj Kaur Chawla
     

12 Feb, 2016

1 commit

  • The existing msi-map code is fine for shifting the entire RID space
    upwards, but attempting finer-grained remapping reveals a bug. It turns
    out that we are mistakenly treating the msi-base part as an offset, not
    as a new base to remap onto, so things get squiffy when rid-base is
    nonzero. Fix this, and at the same time add a sanity check against
    having msi-map-mask clash with a nonzero rid-base, as that's another
    thing one can easily get wrong.

    CC:
    Signed-off-by: Robin Murphy
    Reviewed-by: Marc Zyngier
    Tested-by: Stuart Yoder
    Acked-by: Mark Rutland
    Acked-by: David Daney
    Signed-off-by: Rob Herring

    Robin Murphy
     

09 Feb, 2016

1 commit

  • Commit ae461131960b ("of: of_mdio: Add a whitelist of PHY
    compatibilities.") missed one compatible string used in in-tree DTBs:
    in OCTEON, for selected boards, the kernel DTB pruning code will overwrite
    the DTB compatible string with "marvell,88e1145", which is missing
    from the whitelist. Add it.

    The patch fixes broken networking on EdgeRouter Lite.

    Fixes: ae461131960b ("of: of_mdio: Add a whitelist of PHY compatibilities.")
    Signed-off-by: Aaro Koskinen
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Aaro Koskinen
     

07 Feb, 2016

6 commits

  • Earlycon may fail to initialize for a variety of reasons, most of
    which log the default early param message. If the stdout-path node is
    not found, log the path which was not found (and suppress the
    default early param message).

    Acked-by: Rob Herring
    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     
  • Cleanup the early DT/earlycon separation; remove the 'addr' parameter
    from of_setup_earlycon() and get the uart phys addr directly with a
    new wrapper function, of_flat_dt_translate_addr(). Limit
    fdt_translate_address() to file scope.

    Acked-by: Rob Herring
    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     
  • Read the optional "reg-offset", "reg-shift", "reg-io-width" and endianness
    properties and initialize the respective struct uart_port field if found.

    NB: These bindings are common to several drivers and the values merely
    indicate the default value; the registering earlycon setup() method can
    simply override the values if required.

    Acked-by: Rob Herring
    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     
  • Pass-through any options string in the 'stdout-path' property to the
    earlycon "driver" setup.

    Acked-by: Rob Herring
    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     
  • Use the console name embedded in the OF earlycon table by the
    OF_EARLYCON_DECLARE() macro to initialize the struct console 'name'
    and 'index' fields.

    Acked-by: Rob Herring
    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     
  • Use a single common table of struct earlycon_id for both command line
    and devicetree. Re-define OF_EARLYCON_DECLARE() macro to instance a
    unique earlycon declaration (the declaration is only guaranteed to be
    unique within a compilation unit; separate compilation units must still
    use unique earlycon names).

    The semantics of OF_EARLYCON_DECLARE() is different; it declares an
    earlycon which can matched either on the command line or by devicetree.
    EARLYCON_DECLARE() is semantically unchanged; it declares an earlycon
    which is matched by command line only. Remove redundant instances of
    EARLYCON_DECLARE().

    This enables all earlycons to properly initialize struct console
    with the appropriate name and index, which improves diagnostics and
    enables direct earlycon-to-console handoff.

    Acked-by: Rob Herring
    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     

06 Feb, 2016

1 commit


02 Feb, 2016

1 commit

  • Pull networking fixes from David Miller:
    "This looks like a lot but it's a mixture of regression fixes as well
    as fixes for longer standing issues.

    1) Fix on-channel cancellation in mac80211, from Johannes Berg.

    2) Handle CHECKSUM_COMPLETE properly in xt_TCPMSS netfilter xtables
    module, from Eric Dumazet.

    3) Avoid infinite loop in UDP SO_REUSEPORT logic, also from Eric
    Dumazet.

    4) Avoid a NULL deref if we try to set SO_REUSEPORT after a socket is
    bound, from Craig Gallek.

    5) GRO key comparisons don't take lightweight tunnels into account,
    from Jesse Gross.

    6) Fix struct pid leak via SCM credentials in AF_UNIX, from Eric
    Dumazet.

    7) We need to set the rtnl_link_ops of ipv6 SIT tunnels before we
    register them, otherwise the NEWLINK netlink message is missing
    the proper attributes. From Thadeu Lima de Souza Cascardo.

    8) Several Spectrum chip bug fixes for mlxsw switch driver, from Ido
    Schimmel

    9) Handle fragments properly in ipv4 easly socket demux, from Eric
    Dumazet.

    10) Don't ignore the ifindex key specifier on ipv6 output route
    lookups, from Paolo Abeni"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (128 commits)
    tcp: avoid cwnd undo after receiving ECN
    irda: fix a potential use-after-free in ircomm_param_request
    net: tg3: avoid uninitialized variable warning
    net: nb8800: avoid uninitialized variable warning
    net: vxge: avoid unused function warnings
    net: bgmac: clarify CONFIG_BCMA dependency
    net: hp100: remove unnecessary #ifdefs
    net: davinci_cpdma: use dma_addr_t for DMA address
    ipv6/udp: use sticky pktinfo egress ifindex on connect()
    ipv6: enforce flowi6_oif usage in ip6_dst_lookup_tail()
    netlink: not trim skb for mmaped socket when dump
    vxlan: fix a out of bounds access in __vxlan_find_mac
    net: dsa: mv88e6xxx: fix port VLAN maps
    fib_trie: Fix shift by 32 in fib_table_lookup
    net: moxart: use correct accessors for DMA memory
    ipv4: ipconfig: avoid unused ic_proto_used symbol
    bnxt_en: Fix crash in bnxt_free_tx_skbs() during tx timeout.
    bnxt_en: Exclude rx_drop_pkts hw counter from the stack's rx_dropped counter.
    bnxt_en: Ring free response from close path should use completion ring
    net_sched: drr: check for NULL pointer in drr_dequeue
    ...

    Linus Torvalds
     

01 Feb, 2016

1 commit

  • Pull IRQ fixes from Ingo Molnar:
    "Mostly irqchip driver fixes, but also an irq core crash fix and a
    build fix"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    irqchip/mxs: Add missing set_handle_irq()
    irqchip/atmel-aic: Fix wrong bit operation for IRQ priority
    irqchip/gic-v3-its: Recompute the number of pages on page size change
    base: Export platform_msi_domain_[alloc,free]_irqs
    of: MSI: Simplify irqdomain lookup
    irqdomain: Allow domain lookup with DOMAIN_BUS_WIRED token
    irqchip: Fix dependencies for archs w/o HAS_IOMEM
    irqchip/s3c24xx: Mark init_eint as __maybe_unused
    genirq: Validate action before dereferencing it in handle_irq_event_percpu()

    Linus Torvalds
     

29 Jan, 2016

2 commits

  • Some phy nodes list a compatible value indicating the PHY make/model.
    This is never used to match the device to the driver. However it does
    confuse the code to separate a PHY from a generic MDIO device like a
    switch. Generic MDIO devices must have a compatible value, PHYs can
    list clause 22 or 45, but nothing else.

    Issue a warning if we find a compatible value known on the whitelist,
    and say it is a PHY.

    Fixes: a9049e0c513c ("mdio: Add support for mdio drivers.")
    Reported-by: Aaro Koskinen
    Reported-by: Olof Johansson
    Tested-by: Aaro Koskinen
    Signed-off-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Andrew Lunn
     
  • of_phy_find_device() is used to find the phy device associated with a
    device node. It is expected the node is for a PHY device, but in fact
    it could of been probed as a generic MDIO device. Ensure the device is
    a PHY before returning it.

    Fixes: a9049e0c513c ("mdio: Add support for mdio drivers.")
    Reported-by: Aaro Koskinen
    Reported-by: Olof Johansson
    Signed-off-by: Andrew Lunn
    Tested-by: Aaro Koskinen
    Signed-off-by: David S. Miller

    Andrew Lunn
     

26 Jan, 2016

1 commit

  • So far, when trying to associate a device with its MSI domain,
    we first lookup the domain using a MSI token, and if this
    doesn't return anything useful, we pick up any domain matching
    the same node.

    This logic is broken for two reasons:
    1) Only the generic MSI code (PCI or platform) sets this token
    to PCI/MSI or platform MSI. So we're guaranteed that if there
    is something to be found, we will find it with the first call.
    2) If we have a convoluted situation where:
    - a single node implements both wired and MSI interrupts
    - MSI support for that HW hasn't been compiled in
    we'll end up using the wired domain for MSIs anyway, and things
    break badly.

    So let's just remove __of_get_msi_domain, and replace it by a direct
    call to irq_find_matching_host, because that's what we really want.

    Signed-off-by: Marc Zyngier
    Acked-by: Rob Herring
    Cc: Greg Kroah-Hartman
    Cc: Frank Rowand
    Cc: Grant Likely
    Cc: Thomas Petazzoni
    Cc: Jiang Liu
    Link: http://lkml.kernel.org/r/1453816347-32720-3-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     

15 Jan, 2016

1 commit

  • Pull DeviceTree updates from Rob Herring:

    - Rework and export the changeset API to make it available to users
    other than DT overlays

    - ARM secure devices binding

    - OCTEON USB binding

    - Clean-up of various SRAM binding docs

    - Various other binding doc updates

    * tag 'devicetree-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (21 commits)
    drivers/of: Export OF changeset functions
    Fix documentation for adp1653 DT
    ARM: psci: Fix indentation in DT bindings
    of/platform: export of_default_bus_match_table
    of/unittest: Show broken behaviour in the platform bus
    of: fix declaration of of_io_request_and_map
    of/address: replace printk(KERN_ERR ...) with pr_err(...)
    of/irq: optimize device node matching loop in of_irq_init()
    dt-bindings: tda998x: Document the required 'port' node.
    net/macb: bindings doc: Merge cdns-emac to macb
    dt-bindings: Misc fix for the ATH79 DDR controllers
    dt-bindings: Misc fix for the ATH79 MISC interrupt controllers
    Documentation: dt: Add bindings for Secure-only devices
    dt-bindings: ARM: add arm,cortex-a72 compatible string
    ASoC: Atmel: ClassD: add GCK's parent clock in DT binding
    DT: add Olimex to vendor prefixes
    Documentation: fsl-quadspi: Add fsl,ls1021-qspi compatible string
    Documentation/devicetree: document OCTEON USB bindings
    usb: misc: usb3503: Describe better how to bind clock to the hub
    dt-bindings: Consolidate SRAM bindings from all vendors
    ...

    Linus Torvalds
     

14 Jan, 2016

1 commit

  • The PowerNV PCI hotplug driver is going to use the OF changeset
    to manage the changed device sub-tree. This exports those OF
    changeset functions for that.

    Signed-off-by: Gavin Shan
    Acked-by: Wolfram Sang
    Tested-by: Wolfram Sang
    Signed-off-by: Rob Herring

    Gavin Shan
     

13 Jan, 2016

1 commit

  • It used to be that mdio->irq was a pointer but after e7f4dc3536a4
    ('mdio: Move allocation of interrupts into core') it's an array inside
    the mdio struct so it can never be NULL.

    Reviewed-by: Andrew Lunn
    Signed-off-by: Dan Carpenter
    Signed-off-by: David S. Miller

    Dan Carpenter
     

08 Jan, 2016

4 commits