27 Apr, 2016

2 commits


22 Apr, 2016

1 commit

  • - The asm helpers for calling into irq tracer were missing

    - Add calls to above helpers in low level assembly entry code for ARCv2

    - irq_save() uses CLRI to disable interrupts and returns the prev interrupt
    state (in STATUS32) in a specific encoding (and not the raw value of
    STATUS32). This is usable with SETI in irq_restore(). However
    save_flags() reads the raw value of STATUS32 which doesn't pair with
    irq_save/restore() and thus needs fixing.

    Signed-off-by: Evgeny Voevodin
    [vgupta: updated changelog and also added some comments]
    Signed-off-by: Vineet Gupta

    Evgeny Voevodin
     

12 Apr, 2016

1 commit

  • Pull ARC fixes from Vineet Gupta:
    - fix Kconfig splat due to pcie rework
    - make ethernet work again on axs103
    - provide fb_pgprotect() for future video driver integration

    * tag 'arc-4.6-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: [plat-axs103] Enable loop block devices
    Revert "ARC: [plat-axs10x] add Ethernet PHY description in .dts"
    arc: Add our own implementation of fb_pgprotect()
    ARC: Don't source drivers/pci/pcie/Kconfig ourselves

    Linus Torvalds
     

07 Apr, 2016

4 commits

  • As mentioned in LTP's README.ARC:
    ------------->8------------
    Requirements for the environment

    * Linux must be built with support of loop block devices. Thus it's
    necessary to enable these Linux kernel options:
    CONFIG_BLK_DEV
    CONFIG_BLK_DEV_LOOP
    ------------->8------------
    enabling loop block devices.

    That among other things lead to additional 10 fatal signals
    appearing during LTP run.

    Signed-off-by: Alexey Brodkin
    Signed-off-by: Vineet Gupta

    Alexey Brodkin
     
  • This reverts commit 667a490bdb6e27db0887d2ca515b907d6aa87118.

    This is needed to get ethernet(stmmac) working in 4.6-rc2 on axs103.

    4.5 needed this fix, but apprently stmmac has gained some fixes which
    warrant reversal of this.

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • During mmaping of frame-buffer pages to user-space
    fb_protect() is called to set proper page settings.

    In case of ARC we need to mark pages that are mmaped to
    user as uncached because of 2 reasons:
    * Huge amount of data if passing through data cache will
    thrash cache a lot making cache almost useless for other
    less traffic hungry processes.
    * Data written by user in FB will be immediately available for
    hardware (such as PGU etc) without requirements to flush data
    cache regularly.

    Signed-off-by: Alexey Brodkin
    Cc: linux-snps-arc@lists.infradead.org
    Signed-off-by: Vineet Gupta

    Alexey Brodkin
     
  • Commit 5f8fc43217a0 ("PCI: Include pci/pcie/Kconfig directly from
    pci/Kconfig") in linux-next changed drivers/pci/Kconfig to include
    drivers/pci/pcie/Kconfig itself, so that architectures do not need
    to source both files themselves. ARC just recently gained PCI support
    through commit 6b3fb77998dd ("ARC: Add PCI support"), but this change
    was based on the old behaviour of the Kconfig files. This makes
    Kconfig now spit out the following warnings:

    drivers/pci/pcie/Kconfig:61:warning: choice value used outside its choice group
    drivers/pci/pcie/Kconfig:67:warning: choice value used outside its choice group
    drivers/pci/pcie/Kconfig:74:warning: choice value used outside its choice group

    This change updates the Kconfig file for ARC, dropping the now
    unnecessary 'source' statement, which makes the warning disappear.

    Signed-off-by: Andreas Ziegler
    Signed-off-by: Vineet Gupta

    Andreas Ziegler
     

05 Apr, 2016

1 commit

  • PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} macros were introduced *long* time
    ago with promise that one day it will be possible to implement page
    cache with bigger chunks than PAGE_SIZE.

    This promise never materialized. And unlikely will.

    We have many places where PAGE_CACHE_SIZE assumed to be equal to
    PAGE_SIZE. And it's constant source of confusion on whether
    PAGE_CACHE_* or PAGE_* constant should be used in a particular case,
    especially on the border between fs and mm.

    Global switching to PAGE_CACHE_SIZE != PAGE_SIZE would cause to much
    breakage to be doable.

    Let's stop pretending that pages in page cache are special. They are
    not.

    The changes are pretty straight-forward:

    - << (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> ;

    - >> (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> ;

    - PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} -> PAGE_{SIZE,SHIFT,MASK,ALIGN};

    - page_cache_get() -> get_page();

    - page_cache_release() -> put_page();

    This patch contains automated changes generated with coccinelle using
    script below. For some reason, coccinelle doesn't patch header files.
    I've called spatch for them manually.

    The only adjustment after coccinelle is revert of changes to
    PAGE_CAHCE_ALIGN definition: we are going to drop it later.

    There are few places in the code where coccinelle didn't reach. I'll
    fix them manually in a separate patch. Comments and documentation also
    will be addressed with the separate patch.

    virtual patch

    @@
    expression E;
    @@
    - E << (PAGE_CACHE_SHIFT - PAGE_SHIFT)
    + E

    @@
    expression E;
    @@
    - E >> (PAGE_CACHE_SHIFT - PAGE_SHIFT)
    + E

    @@
    @@
    - PAGE_CACHE_SHIFT
    + PAGE_SHIFT

    @@
    @@
    - PAGE_CACHE_SIZE
    + PAGE_SIZE

    @@
    @@
    - PAGE_CACHE_MASK
    + PAGE_MASK

    @@
    expression E;
    @@
    - PAGE_CACHE_ALIGN(E)
    + PAGE_ALIGN(E)

    @@
    expression E;
    @@
    - page_cache_get(E)
    + get_page(E)

    @@
    expression E;
    @@
    - page_cache_release(E)
    + put_page(E)

    Signed-off-by: Kirill A. Shutemov
    Acked-by: Michal Hocko
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     

25 Mar, 2016

1 commit

  • Pull asm-generic updates from Arnd Bergmann:
    "There are only three patches this time, most other changes to files in
    include/asm-generic tend to go through the tree of whoever depends on
    the change.

    Two patches are cleanups for stuff that is no longer needed, the main
    change is to adapt the generic version of BUG_ON() for CONFIG_BUG=n to
    make it behave consistently with BUG().

    This avoids undefined behavior along with a number of warnings about
    that undefined behavior in randconfig builds when we keep going on
    after hitting a BUG_ON()"

    * tag 'asm-generic-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
    asm-generic: remove old nonatomic-io wrapper files
    asm-generic: default BUG_ON(x) to if(x)BUG()
    asm-generic: page.h: Remove useless get_user_page and free_user_page

    Linus Torvalds
     

22 Mar, 2016

1 commit

  • Pull ARC architecture updates from Vineet Gupta:
    - Big Endian io accessors fix [Lada]
    - Spellos fixes [Adam]
    - Fix for DW GMAC breakage [Alexey]
    - Making DMA API 64-bit ready
    - Shutting up -Wmaybe-uninitialized noise for ARC
    - Other minor fixes here and there, comments update

    * tag 'arc-4.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: (21 commits)
    ARCv2: ioremap: Support dynamic peripheral address space
    ARC: dma: reintroduce platform specific dmaphys
    ARC: dma: ioremap: use phys_addr_t consistenctly in code paths
    ARC: dma: pass_phys() not sg_virt() to cache ops
    ARC: dma: non-coherent pages need V-P mapping if in HIGHMEM
    ARC: dma: Use struct page based page allocator helpers
    ARC: build: Turn off -Wmaybe-uninitialized for ARC gcc 4.8
    ARC: [plat-axs10x] add Ethernet PHY description in .dts
    arc: use of_platform_default_populate() to populate default bus
    ARC: thp: unbork !CONFIG_TRANSPARENT_HUGEPAGE build
    arc: [plat-nsimosci*] use ezchip network driver
    ARCv2: LLSC: software backoff is NOT needed starting HS2.1c
    ARC: mm: Use virt_to_pfn() for addr >> PAGE_SHIFT pattern
    ARC: [plat-nsim] document ranges
    ARC: build: Better way to detect ISA compatible toolchain
    ARCv2: Allow enabling PAE40 w/o HIGHMEM
    ARC: [BE] readl()/writel() to work in Big Endian CPU configuration
    ARC: [*defconfig] No need to specify CONFIG_CROSS_COMPILE
    ARC: [BE] Select correct CROSS_COMPILE prefix
    ARC: bitops: Remove non relevant comments
    ...

    Linus Torvalds
     

20 Mar, 2016

1 commit

  • 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
     

19 Mar, 2016

6 commits


18 Mar, 2016

2 commits

  • linux-next has been reporting gazillion warnings for ARC build and
    I finally decided to take a bite:

    http://kisskb.ellerman.id.au/kisskb/buildresult/12638735/

    Most of the them are due to -Wmaybe-uninitialized

    | ../kernel/sysctl.c: In function '__do_proc_doulongvec_minmax':
    | ../kernel/sysctl.c:1928:12: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
    | ret = tmp - *buf;
    | ^
    | ../kernel/sysctl.c:2342:29: note: 'p' was declared here
    | char *kbuf = NULL, *p;
    | ^
    | ...
    | ...

    Cursory look at code seemed fine and a definite gcc false positive in say
    kernel/sysctl.c

    Mystery was why only for ARC (and not with ARM linaro toolchain based
    off same gcc 4.8). Turns out that -O3 (default for ARC) triggers these
    and if I enable -O3 for ARM kernel build, I see the same splat.

    I initially wanted to disable this only for gcc 4.8, but Arnd reported
    it is seen even on gcc 6.0 for ARM with -O3. Thus better to disable
    this independent of gcc version.

    Cc: Claudiu Zissulescu
    Cc: Arnd Bergmann
    Cc: Michal Marek
    Cc: Geert Uytterhoeven
    Cc: linux-kbuild@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • With THP refcounting work, no need to mark PMDs splitting.

    (ARC got missed under the sweeping arch change as THP support was likely
    not present in orig baseline)

    Signed-off-by: Vineet Gupta
    Cc: Kirill A. Shutemov

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vineet Gupta
     

17 Mar, 2016

4 commits

  • Commit e34d65696d2e ("stmmac: create of compatible mdio bus for stmmac
    driver") broke DW GMAC functionality on ARC AXS10x boards:

    That's what happens on eth0 up:
    --------------------------->8------------------------
    | libphy: PHY stmmac-0:ffffffff not found
    | eth0: Could not attach to PHY
    | stmmac_open: Cannot attach to PHY (error: -19)
    --------------------------->8------------------------

    Simplest solution is to add PHY description in board's .dts.
    And so we do here.

    Signed-off-by: Alexey Brodkin
    Cc: Rob Herring
    Cc: Phil Reid
    Cc: David S. Miller
    Cc: linux-kernel@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Cc: stable@vger.kernel.org # 4.5
    Reviewed-by: Sergei Shtylyov
    Signed-off-by: Vineet Gupta

    Alexey Brodkin
     
  • Use helper of_platform_default_populate() in linux/of_platform
    when possible, instead of calling of_platform_populate() with
    the default match table.

    Signed-off-by: Kefeng Wang
    Signed-off-by: Vineet Gupta

    Kefeng Wang
     
  • linux-next for 4.6-rc1 timeline reported ARC build failures !THP

    | arch/arc/include/asm/tlbflush.h:29:0: warning: "flush_pmd_tlb_range" redefined [enabled by default]
    | arch/arc/include/asm/tlbflush.h:29:0: warning: "flush_pmd_tlb_range" redefined [enabled by default]
    | arch/arc/include/asm/tlbflush.h:29:0: warning: "flush_pmd_tlb_range" redefined [enabled by default]

    Turns out that commit ("mm/thp/migration: switch from flush_tlb_range
    to flush_pmd_tlb_range") triggered the issue while the problem was in
    ARC code where THP specific helpers were not guarded with #ifdef.

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • 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

2 commits


14 Mar, 2016

1 commit

  • This patch updates all instances of csum_tcpudp_magic and
    csum_tcpudp_nofold to reflect the types that are usually used as the source
    inputs. For example the protocol field is populated based on nexthdr which
    is actually an unsigned 8 bit value. The length is usually populated based
    on skb->len which is an unsigned integer.

    This addresses an issue in which the IPv6 function csum_ipv6_magic was
    generating a checksum using the full 32b of skb->len while
    csum_tcpudp_magic was only using the lower 16 bits. As a result we could
    run into issues when attempting to adjust the checksum as there was no
    protocol agnostic way to update it.

    With this change the value is still truncated as many architectures use
    "(len + proto) << 8", however this truncation only occurs for values
    greater than 16776960 in length and as such is unlikely to occur as we stop
    the inner headers at ~64K in size.

    I did have to make a few minor changes in the arm, mn10300, nios2, and
    score versions of the function in order to support these changes as they
    were either using things such as an OR to combine the protocol and length,
    or were using ntohs to convert the length which would have truncated the
    value.

    I also updated a few spots in terms of whitespace and type differences for
    the addresses. Most of this was just to make sure all of the definitions
    were in sync going forward.

    Signed-off-by: Alexander Duyck
    Signed-off-by: David S. Miller

    Alexander Duyck
     

12 Mar, 2016

5 commits

  • Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • ARC architecture has 2 instruction sets: ARCompact/ARCv2.
    While same gcc supports compiling for either (using appropriate toggles),
    we can't use the same toolchain to build kernel because libgcc needs
    to be unique and the toolchian (uClibc based) is not multilibed.

    uClibc toolchain is convenient since it allows all userspace and
    kernel to be built with a single install for an ISA.

    This however means 2 gnu installs (with same triplet prefix) are needed
    for building for 2 ISA and need to be in PATH.
    As developers we keep switching the builds, but would occassionally fail
    to update the PATH leading to usage of wrong tools. And this would only
    show up at the end of kernel build when linking incompatible libgcc.

    So the initial solution was to have gcc define a special preprocessor macro
    DEFAULT_CPU_xxx which is unique for default toolchain configuration.
    Claudiu proposed using grep for an existing preprocessor macro which is
    again uniquely defined per ISA.

    Cc: Michal Marek
    Suggested-by: Claudiu Zissulescu
    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • This allows for regression testing in PAE specific code as we lack
    a 32+ bit physical memory platform other than nSIM.

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • read{l,w}() write{l,w}() primitives should use le{16,32}_to_cpu() and
    cpu_to_le{16,32}() respectively to ensure device registers are read
    correctly in Big Endian CPU configuration.

    Per Arnd Bergmann
    | Most drivers using readl() or readl_relaxed() expect those to perform byte
    | swaps on big-endian architectures, as the registers tend to be fixed endian

    This was needed for getting UART to work correctly on a Big Endian ARC.

    The ARC accessors originally were fine, and the bug got introduced
    inadventently by commit b8a033023994 ("ARCv2: barriers")

    Fixes: b8a033023994 ("ARCv2: barriers")
    Link: http://lkml.kernel.org/r/201603100845.30602.arnd@arndb.de
    Cc: Alexey Brodkin
    Cc: stable@vger.kernel.org [4.2+]
    Cc: Arnd Bergmann
    Signed-off-by: Lada Trimasova
    [vgupta: beefed up changelog, added Fixes/stable tags]
    Signed-off-by: Vineet Gupta

    Lada Trimasova
     

11 Mar, 2016

5 commits


02 Mar, 2016

1 commit

  • Let the non boot cpus call into idle with the corresponding hotplug state, so
    the hotplug core can handle the further bringup. That's a first step to
    convert the boot side of the hotplugged cpus to do all the synchronization
    with the other side through the state machine. For now it'll only start the
    hotplug thread and kick the full bringup of the cpu.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182341.614102639@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     

26 Feb, 2016

1 commit


24 Feb, 2016

1 commit