14 Oct, 2015

3 commits

  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
    rpmsg: fill in dma fields for sgs passed to virtio
    virtio_ring: add virtqueue_add_inbuf/outbuf_rpmsg API
    virtio_ring: revise descriptor addition logic for virtio_rpmsg
    virtio_ring: break out vring descriptor setup code
    iommu/omap: Fix debug_read_tlb() to use seq_printf()

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • TI-Feature: rpmsg
    TI-Tree: git://git.ti.com/rpmsg/rpmsg.git
    TI-Branch: rpmsg-ti-linux-4.1.y

    * 'rpmsg-ti-linux-4.1.y' of git://git.ti.com/rpmsg/rpmsg:
    rpmsg: fill in dma fields for sgs passed to virtio
    virtio_ring: add virtqueue_add_inbuf/outbuf_rpmsg API
    virtio_ring: revise descriptor addition logic for virtio_rpmsg
    virtio_ring: break out vring descriptor setup code
    iommu/omap: Fix debug_read_tlb() to use seq_printf()

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • Pull in the updated rpmsg base feature branch that fixes the
    rpmsg communication issues on AM437x PRUSS. The fixes are based
    on enhancements to the virtio_ring and virtio_rpmsg_bus drivers
    to work properly for buffers allocated from CMA pools from HIGHMEM
    or carveouts.

    The default CMA pools in Linux are allocated from HIGHMEM range
    since 3.18 if the platform has large enough memory for HIGHMEM.

    * 'rpmsg-linux-4.1.y' of git://git.ti.com/rpmsg/rpmsg:
    rpmsg: fill in dma fields for sgs passed to virtio
    virtio_ring: add virtqueue_add_inbuf/outbuf_rpmsg API
    virtio_ring: revise descriptor addition logic for virtio_rpmsg
    virtio_ring: break out vring descriptor setup code

    Signed-off-by: Suman Anna

    Suman Anna
     

13 Oct, 2015

1 commit

  • Expose new variants of virtqueue_add_inbuf() & virtqueue_add_outbuf()
    API specifically to deal with virtio_rpmsg. The virtio core in general
    expects all the vring buffers to be allocated from linear addresses,
    but the virtio_rpmsg can have the buffers in non-linear space due to
    its usage of the dma_alloc_coherent() API.

    Based on a RFC patch from Edgar E. Iglesias ,
    http://marc.info/?l=linux-virtualization&m=143047902512226&w=2

    Signed-off-by: Suman Anna

    Suman Anna
     

03 Oct, 2015

1 commit

  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
    media: i2c: ov2659: Fix sensor detection to actually fail when device is not present
    clk: ti: clk-7xx: Remove hardwired ABE clock configuration
    ARM: dts: dra7x-evm: add ABE DPLL init setups
    ASoC: soc-core: Fix sparse warning in be32_to_cpup() call
    ASoC: simple-card: Add tdm slot mask support to simple-card
    ASoC: davinci-mcasp: Add set_tdm_slots() support
    ASoC: tlv320aic3x: Improve tdm support

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     

02 Oct, 2015

4 commits

  • …el/audio-display-linux-feature-tree into ti-linux-4.1.y

    TI-Feature: audio-display
    TI-Tree: git@git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree.git
    TI-Branch: audio-display-ti-linux-4.1.y

    * 'audio-display-ti-linux-4.1.y' of git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree:
    media: i2c: ov2659: Fix sensor detection to actually fail when device is not present
    clk: ti: clk-7xx: Remove hardwired ABE clock configuration
    ARM: dts: dra7x-evm: add ABE DPLL init setups
    ASoC: soc-core: Fix sparse warning in be32_to_cpup() call
    ASoC: simple-card: Add tdm slot mask support to simple-card
    ASoC: davinci-mcasp: Add set_tdm_slots() support
    ASoC: tlv320aic3x: Improve tdm support

    Signed-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>

    Texas Instruments Auto Merger
     
  • commit 6131084a0bc966107021d8c89489f9cd1663b902 upstream

    Adds DT binding for explicitly choosing a tdm mask for DAI and uses it
    in simple-card. The API for snd_soc_of_parse_tdm_slot() has also been
    changed.

    Signed-off-by: Jyri Sarha
    Signed-off-by: Mark Brown

    Jyri Sarha
     
  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel: (160 commits)
    Linux 4.1.9
    cxl: Don't remove AFUs/vPHBs in cxl_reset
    ipv4: off-by-one in continuation handling in /proc/net/route
    net: dsa: Do not override PHY interface if already configured
    inet: fix races with reqsk timers
    inet: fix possible request socket leak
    netlink: make sure -EBUSY won't escape from netlink_insert
    bna: fix interrupts storm caused by erroneous packets
    bridge: netlink: account for the IFLA_BRPORT_PROXYARP_WIFI attribute size and policy
    bridge: netlink: account for the IFLA_BRPORT_PROXYARP attribute size and policy
    udp: fix dst races with multicast early demux
    rds: fix an integer overflow test in rds_info_getsockopt()
    rocker: free netdevice during netdevice removal
    net: sched: fix refcount imbalance in actions
    act_bpf: fix memory leaks when replacing bpf programs
    packet: tpacket_snd(): fix signed/unsigned comparison
    packet: missing dev_put() in packet_do_bind()
    fib_trie: Drop unnecessary calls to leaf_pull_suffix
    net/mlx4_core: Fix wrong index in propagating port change event to VFs
    bridge: netlink: fix slave_changelink/br_setport race conditions
    ...

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • …x-stable into ti-linux-4.1.y

    This is the 4.1.9 stable release

    * tag 'v4.1.9' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (160 commits)
    Linux 4.1.9
    cxl: Don't remove AFUs/vPHBs in cxl_reset
    ipv4: off-by-one in continuation handling in /proc/net/route
    net: dsa: Do not override PHY interface if already configured
    inet: fix races with reqsk timers
    inet: fix possible request socket leak
    netlink: make sure -EBUSY won't escape from netlink_insert
    bna: fix interrupts storm caused by erroneous packets
    bridge: netlink: account for the IFLA_BRPORT_PROXYARP_WIFI attribute size and policy
    bridge: netlink: account for the IFLA_BRPORT_PROXYARP attribute size and policy
    udp: fix dst races with multicast early demux
    rds: fix an integer overflow test in rds_info_getsockopt()
    rocker: free netdevice during netdevice removal
    net: sched: fix refcount imbalance in actions
    act_bpf: fix memory leaks when replacing bpf programs
    packet: tpacket_snd(): fix signed/unsigned comparison
    packet: missing dev_put() in packet_do_bind()
    fib_trie: Drop unnecessary calls to leaf_pull_suffix
    net/mlx4_core: Fix wrong index in propagating port change event to VFs
    bridge: netlink: fix slave_changelink/br_setport race conditions
    ...

    Signed-off-by: Dan Murphy <DMurphy@ti.com>

    Conflicts:
    drivers/media/platform/am437x/am437x-vpfe.c

    Dan Murphy
     

30 Sep, 2015

7 commits

  • [ Upstream commit 28e6b67f0b292f557468c139085303b15f1a678f ]

    Since commit 55334a5db5cd ("net_sched: act: refuse to remove bound action
    outside"), we end up with a wrong reference count for a tc action.

    Test case 1:

    FOO="1,6 0 0 4294967295,"
    BAR="1,6 0 0 4294967294,"
    tc filter add dev foo parent 1: bpf bytecode "$FOO" flowid 1:1 \
    action bpf bytecode "$FOO"
    tc actions show action bpf
    action order 0: bpf bytecode '1,6 0 0 4294967295' default-action pipe
    index 1 ref 1 bind 1
    tc actions replace action bpf bytecode "$BAR" index 1
    tc actions show action bpf
    action order 0: bpf bytecode '1,6 0 0 4294967294' default-action pipe
    index 1 ref 2 bind 1
    tc actions replace action bpf bytecode "$FOO" index 1
    tc actions show action bpf
    action order 0: bpf bytecode '1,6 0 0 4294967295' default-action pipe
    index 1 ref 3 bind 1

    Test case 2:

    FOO="1,6 0 0 4294967295,"
    tc filter add dev foo parent 1: bpf bytecode "$FOO" flowid 1:1 action ok
    tc actions show action gact
    action order 0: gact action pass
    random type none pass val 0
    index 1 ref 1 bind 1
    tc actions add action drop index 1
    RTNETLINK answers: File exists [...]
    tc actions show action gact
    action order 0: gact action pass
    random type none pass val 0
    index 1 ref 2 bind 1
    tc actions add action drop index 1
    RTNETLINK answers: File exists [...]
    tc actions show action gact
    action order 0: gact action pass
    random type none pass val 0
    index 1 ref 3 bind 1

    What happens is that in tcf_hash_check(), we check tcf_common for a given
    index and increase tcfc_refcnt and conditionally tcfc_bindcnt when we've
    found an existing action. Now there are the following cases:

    1) We do a late binding of an action. In that case, we leave the
    tcfc_refcnt/tcfc_bindcnt increased and are done with the ->init()
    handler. This is correctly handeled.

    2) We replace the given action, or we try to add one without replacing
    and find out that the action at a specific index already exists
    (thus, we go out with error in that case).

    In case of 2), we have to undo the reference count increase from
    tcf_hash_check() in the tcf_hash_check() function. Currently, we fail to
    do so because of the 'tcfc_bindcnt > 0' check which bails out early with
    an -EPERM error.

    Now, while commit 55334a5db5cd prevents 'tc actions del action ...' on an
    already classifier-bound action to drop the reference count (which could
    then become negative, wrap around etc), this restriction only accounts for
    invocations outside a specific action's ->init() handler.

    One possible solution would be to add a flag thus we possibly trigger
    the -EPERM ony in situations where it is indeed relevant.

    After the patch, above test cases have correct reference count again.

    Fixes: 55334a5db5cd ("net_sched: act: refuse to remove bound action outside")
    Signed-off-by: Daniel Borkmann
    Reviewed-by: Cong Wang
    Signed-off-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    Daniel Borkmann
     
  • [ Upstream commit 03645a11a570d52e70631838cb786eb4253eb463 ]

    ip6_datagram_connect() is doing a lot of socket changes without
    socket being locked.

    This looks wrong, at least for udp_lib_rehash() which could corrupt
    lists because of concurrent udp_sk(sk)->udp_portaddr_hash accesses.

    Signed-off-by: Eric Dumazet
    Acked-by: Herbert Xu
    Signed-off-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    Eric Dumazet
     
  • commit 841df7df196237ea63233f0f9eaa41db53afd70f upstream.

    Commit 6f6a6fda2945 "jbd2: fix ocfs2 corrupt when updating journal
    superblock fails" changed jbd2_cleanup_journal_tail() to return EIO
    when the journal is aborted. That makes logic in
    jbd2_log_do_checkpoint() bail out which is fine, except that
    jbd2_journal_destroy() expects jbd2_log_do_checkpoint() to always make
    a progress in cleaning the journal. Without it jbd2_journal_destroy()
    just loops in an infinite loop.

    Fix jbd2_journal_destroy() to cleanup journal checkpoint lists of
    jbd2_log_do_checkpoint() fails with error.

    Reported-by: Eryu Guan
    Tested-by: Eryu Guan
    Fixes: 6f6a6fda294506dfe0e3e0a253bb2d2923f28f0a
    Signed-off-by: Jan Kara
    Signed-off-by: Theodore Ts'o
    Signed-off-by: Greg Kroah-Hartman

    Jan Kara
     
  • commit 11cec15bf3fb498206ef63b1fa26c27689e02d0e upstream.

    The number of TLB lines was increased from 16 on Tegra30 to 32 on
    Tegra114 and later. Parameterize the value so that the initial default
    can be set accordingly.

    On Tegra30, initializing the value to 32 would effectively disable the
    TLB and hence cause massive latencies for memory accesses translated
    through the SMMU. This is especially noticeable for isochronuous clients
    such as display, whose FIFOs would continuously underrun.

    Fixes: 891846516317 ("memory: Add NVIDIA Tegra memory controller support")
    Signed-off-by: Thierry Reding
    Signed-off-by: Greg Kroah-Hartman

    Thierry Reding
     
  • commit 0fdea1e8a2853f79d39b8555cc9de16a7e0ab26f upstream.

    Commit 718ba5b87343, moved the responsibility for unlocking the socket to
    xs_tcp_setup_socket, meaning that the socket will be unlocked before we
    know that it has finished trying to connect. The following patch is based on
    an initial patch by Russell King to ensure that we delay clearing the
    XPRT_CONNECTING flag until we either know that we failed to initiate
    a connection attempt, or the connection attempt itself failed.

    Fixes: 718ba5b87343 ("SUNRPC: Add helpers to prevent socket create from racing")
    Reported-by: Russell King
    Reported-by: Russell King
    Tested-by: Russell King
    Tested-by: Benjamin Coddington
    Signed-off-by: Trond Myklebust
    Signed-off-by: Greg Kroah-Hartman

    Trond Myklebust
     
  • commit 051ac3848a94f21cfdec899cc9c65ce7f9f116fa upstream.

    `perf stat -e sunrpc:svc_xprt_do_enqueue true` results in

    Warning: unknown op '->'
    Warning: [sunrpc:svc_xprt_do_enqueue] unknown op '->'

    Similar warning for svc_handle_xprt as well.

    Actually TP_printk() should never dereference an address saved in the ring
    buffer that points somewhere in the kernel. There's no guarantee that that
    object still exists (with the exception of static strings).

    Therefore change all the arguments for TP_printk(), so that it references
    values existing in the ring buffer only.

    While doing that, also fix another possible bug when argument xprt could be
    NULL and TP_fast_assign() tries to access it's elements.

    Signed-off-by: Pratyush Anand
    Reviewed-by: Jeff Layton
    Acked-by: Steven Rostedt
    Fixes: 83a712e0afef "sunrpc: add some tracepoints around ..."
    Signed-off-by: J. Bruce Fields
    Signed-off-by: Greg Kroah-Hartman

    Pratyush Anand
     
  • commit 2f064f3485cd29633ad1b3cfb00cc519509a3d72 upstream.

    Commit c48a11c7ad26 ("netvm: propagate page->pfmemalloc to skb") added
    checks for page->pfmemalloc to __skb_fill_page_desc():

    if (page->pfmemalloc && !page->mapping)
    skb->pfmemalloc = true;

    It assumes page->mapping == NULL implies that page->pfmemalloc can be
    trusted. However, __delete_from_page_cache() can set set page->mapping
    to NULL and leave page->index value alone. Due to being in union, a
    non-zero page->index will be interpreted as true page->pfmemalloc.

    So the assumption is invalid if the networking code can see such a page.
    And it seems it can. We have encountered this with a NFS over loopback
    setup when such a page is attached to a new skbuf. There is no copying
    going on in this case so the page confuses __skb_fill_page_desc which
    interprets the index as pfmemalloc flag and the network stack drops
    packets that have been allocated using the reserves unless they are to
    be queued on sockets handling the swapping which is the case here and
    that leads to hangs when the nfs client waits for a response from the
    server which has been dropped and thus never arrive.

    The struct page is already heavily packed so rather than finding another
    hole to put it in, let's do a trick instead. We can reuse the index
    again but define it to an impossible value (-1UL). This is the page
    index so it should never see the value that large. Replace all direct
    users of page->pfmemalloc by page_is_pfmemalloc which will hide this
    nastiness from unspoiled eyes.

    The information will get lost if somebody wants to use page->index
    obviously but that was the case before and the original code expected
    that the information should be persisted somewhere else if that is
    really needed (e.g. what SLAB and SLUB do).

    [akpm@linux-foundation.org: fix blooper in slub]
    Fixes: c48a11c7ad26 ("netvm: propagate page->pfmemalloc to skb")
    Signed-off-by: Michal Hocko
    Debugged-by: Vlastimil Babka
    Debugged-by: Jiri Bohac
    Cc: Eric Dumazet
    Cc: David Miller
    Acked-by: Mel Gorman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Michal Hocko
     

26 Sep, 2015

2 commits

  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel: (184 commits)
    Linux 4.1.8
    ARM: rockchip: fix broken build
    fs: create and use seq_show_option for escaping
    hpfs: update ctime and mtime on directory modification
    fs: Set the size of empty dirs to 0.
    drivercore: Fix unregistration path of platform devices
    ACPI, PCI: Penalize legacy IRQ used by ACPI SCI
    ARM: dts: rockchip: fix rk3288 watchdog irq
    ARM: rockchip: fix the CPU soft reset
    ARM: OMAP2+: DRA7: clockdomain: change l4per2_7xx_clkdm to SW_WKUP
    ARM: dts: fix clock-frequency of display timing0 for exynos3250-rinato
    ARM: orion5x: fix legacy orion5x IRQ numbers
    of/address: Don't loop forever in of_find_matching_node_by_address().
    soc/tegra: pmc: Avoid usage of uninitialized variable
    x86/mce: Reenable CMCI banks when swiching back to interrupt mode
    regulator: pbias: Fix broken pbias disable functionality
    auxdisplay: ks0108: fix refcount
    spi/spi-xilinx: Fix mixed poll/irq mode
    spi/spi-xilinx: Fix spurious IRQ ACK on irq mode
    Doc: ABI: testing: configfs-usb-gadget-sourcesink
    ...

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • …x-stable into ti-linux-4.1.y

    This is the 4.1.8 stable release

    * tag 'v4.1.8' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (184 commits)
    Linux 4.1.8
    ARM: rockchip: fix broken build
    fs: create and use seq_show_option for escaping
    hpfs: update ctime and mtime on directory modification
    fs: Set the size of empty dirs to 0.
    drivercore: Fix unregistration path of platform devices
    ACPI, PCI: Penalize legacy IRQ used by ACPI SCI
    ARM: dts: rockchip: fix rk3288 watchdog irq
    ARM: rockchip: fix the CPU soft reset
    ARM: OMAP2+: DRA7: clockdomain: change l4per2_7xx_clkdm to SW_WKUP
    ARM: dts: fix clock-frequency of display timing0 for exynos3250-rinato
    ARM: orion5x: fix legacy orion5x IRQ numbers
    of/address: Don't loop forever in of_find_matching_node_by_address().
    soc/tegra: pmc: Avoid usage of uninitialized variable
    x86/mce: Reenable CMCI banks when swiching back to interrupt mode
    regulator: pbias: Fix broken pbias disable functionality
    auxdisplay: ks0108: fix refcount
    spi/spi-xilinx: Fix mixed poll/irq mode
    spi/spi-xilinx: Fix spurious IRQ ACK on irq mode
    Doc: ABI: testing: configfs-usb-gadget-sourcesink
    ...

    Signed-off-by: Dan Murphy <DMurphy@ti.com>

    Conflicts:
    arch/arm/mm/proc-v7.S

    Dan Murphy
     

22 Sep, 2015

4 commits

  • commit a068acf2ee77693e0bf39d6e07139ba704f461c3 upstream.

    Many file systems that implement the show_options hook fail to correctly
    escape their output which could lead to unescaped characters (e.g. new
    lines) leaking into /proc/mounts and /proc/[pid]/mountinfo files. This
    could lead to confusion, spoofed entries (resulting in things like
    systemd issuing false d-bus "mount" notifications), and who knows what
    else. This looks like it would only be the root user stepping on
    themselves, but it's possible weird things could happen in containers or
    in other situations with delegated mount privileges.

    Here's an example using overlay with setuid fusermount trusting the
    contents of /proc/mounts (via the /etc/mtab symlink). Imagine the use
    of "sudo" is something more sneaky:

    $ BASE="ovl"
    $ MNT="$BASE/mnt"
    $ LOW="$BASE/lower"
    $ UP="$BASE/upper"
    $ WORK="$BASE/work/ 0 0
    none /proc fuse.pwn user_id=1000"
    $ mkdir -p "$LOW" "$UP" "$WORK"
    $ sudo mount -t overlay -o "lowerdir=$LOW,upperdir=$UP,workdir=$WORK" none /mnt
    $ cat /proc/mounts
    none /root/ovl/mnt overlay rw,relatime,lowerdir=ovl/lower,upperdir=ovl/upper,workdir=ovl/work/ 0 0
    none /proc fuse.pwn user_id=1000 0 0
    $ fusermount -u /proc
    $ cat /proc/mounts
    cat: /proc/mounts: No such file or directory

    This fixes the problem by adding new seq_show_option and
    seq_show_option_n helpers, and updating the vulnerable show_option
    handlers to use them as needed. Some, like SELinux, need to be open
    coded due to unusual existing escape mechanisms.

    [akpm@linux-foundation.org: add lost chunk, per Kees]
    [keescook@chromium.org: seq_show_option should be using const parameters]
    Signed-off-by: Kees Cook
    Acked-by: Serge Hallyn
    Acked-by: Jan Kara
    Acked-by: Paul Moore
    Cc: J. R. Okajima
    Signed-off-by: Kees Cook
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Kees Cook
     
  • commit 5d0ddfebb93069061880fc57ee4ba7246bd1e1ee upstream.

    Nick Meier reported a regression with HyperV that "
    After rebooting the VM, the following messages are logged in syslog
    when trying to load the tulip driver:
    tulip: Linux Tulip drivers version 1.1.15 (Feb 27, 2007)
    tulip: 0000:00:0a.0: PCI INT A: failed to register GSI
    tulip: Cannot enable tulip board #0, aborting
    tulip: probe of 0000:00:0a.0 failed with error -16
    Errors occur in 3.19.0 kernel
    Works in 3.17 kernel.
    "

    According to the ACPI dump file posted by Nick at
    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1440072

    The ACPI MADT table includes an interrupt source overridden entry for
    ACPI SCI:
    [236h 0566 1] Subtable Type : 02
    [237h 0567 1] Length : 0A
    [238h 0568 1] Bus : 00
    [239h 0569 1] Source : 09
    [23Ah 0570 4] Interrupt : 00000009
    [23Eh 0574 2] Flags (decoded below) : 000D
    Polarity : 1
    Trigger Mode : 3

    And in DSDT table, we have _PRT method to define PCI interrupts, which
    eventually goes to:
    Name (PRSA, ResourceTemplate ()
    {
    IRQ (Level, ActiveLow, Shared, )
    {3,4,5,7,9,10,11,12,14,15}
    })
    Name (PRSB, ResourceTemplate ()
    {
    IRQ (Level, ActiveLow, Shared, )
    {3,4,5,7,9,10,11,12,14,15}
    })
    Name (PRSC, ResourceTemplate ()
    {
    IRQ (Level, ActiveLow, Shared, )
    {3,4,5,7,9,10,11,12,14,15}
    })
    Name (PRSD, ResourceTemplate ()
    {
    IRQ (Level, ActiveLow, Shared, )
    {3,4,5,7,9,10,11,12,14,15}
    })

    According to the MADT and DSDT tables, IRQ 9 may be used for:
    1) ACPI SCI in level, high mode
    2) PCI legacy IRQ in level, low mode
    So there's a conflict in polarity setting for IRQ 9.

    Prior to commit cd68f6bd53cf ("x86, irq, acpi: Get rid of special
    handling of GSI for ACPI SCI"), ACPI SCI is handled specially and
    there's no check for conflicts between ACPI SCI and PCI legagy IRQ.
    And it seems that the HyperV hypervisor doesn't make use of the
    polarity configuration in IOAPIC entry, so it just works.

    Commit cd68f6bd53cf gets rid of the specially handling of ACPI SCI,
    and then the pin attribute checking code discloses the conflicts
    between ACPI SCI and PCI legacy IRQ on HyperV virtual machine,
    and rejects the request to assign IRQ9 to PCI devices.

    So penalize legacy IRQ used by ACPI SCI and mark it unusable if ACPI
    SCI attributes conflict with PCI IRQ attributes.

    Please refer to following links for more information:
    https://bugzilla.kernel.org/show_bug.cgi?id=101301
    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1440072

    Fixes: cd68f6bd53cf ("x86, irq, acpi: Get rid of special handling of GSI for ACPI SCI")
    Reported-and-tested-by: Nick Meier
    Acked-by: Thomas Gleixner
    Signed-off-by: Jiang Liu
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Greg Kroah-Hartman

    Jiang Liu
     
  • commit 932c435caba8a2ce473a91753bad0173269ef334 upstream.

    Add a dev_flags bit, PCI_DEV_FLAGS_VPD_REF_F0, to access VPD through
    function 0 to provide VPD access on other functions. This is for hardware
    devices that provide copies of the same VPD capability registers in
    multiple functions. Because the kernel expects that each function has its
    own registers, both the locking and the state tracking are affected by VPD
    accesses to different functions.

    On such devices for example, if a VPD write is performed on function 0,
    *any* later attempt to read VPD from any other function of that device will
    hang. This has to do with how the kernel tracks the expected value of the
    F bit per function.

    Concurrent accesses to different functions of the same device can not only
    hang but also corrupt both read and write VPD data.

    When hangs occur, typically the error message:

    vpd r/w failed. This is likely a firmware bug on this device.

    will be seen.

    Never set this bit on function 0 or there will be an infinite recursion.

    Signed-off-by: Mark Rustad
    Signed-off-by: Bjorn Helgaas
    Acked-by: Alexander Duyck
    Signed-off-by: Greg Kroah-Hartman

    Mark Rustad
     
  • commit c689a923c867eac40ed3826c1d9328edea8b6bc7 upstream.

    Add inverse unit conversion macro to convert from standard IIO units to
    units that might be used by some devices.

    Those are useful in combination with scale factors that are specified as
    IIO_VAL_FRACTIONAL. Typically the denominator for those specifications will
    contain the maximum raw value the sensor will generate and the numerator
    the value it maps to in a specific unit. Sometimes datasheets specify those
    in different units than the standard IIO units (e.g. degree/s instead of
    rad/s) and so we need to do a unit conversion.

    From a mathematical point of view it does not make a difference whether we
    apply the unit conversion to the numerator or the inverse unit conversion
    to the denominator since (x / y) / z = x / (y * z). But as the denominator
    is typically a larger value and we are rounding both the numerator and
    denominator to integer values using the later method gives us a better
    precision (E.g. the relative error is smaller if we round 8000.3 to 8000
    rather than rounding 8.3 to 8).

    This is where in inverse unit conversion macros will be used.

    Marked for stable as used by some upcoming fixes.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Jonathan Cameron
    Signed-off-by: Greg Kroah-Hartman

    Lars-Peter Clausen
     

17 Sep, 2015

1 commit


16 Sep, 2015

1 commit

  • This is required because on TI SoC, the IVA_HD can consume as many as
    32 buffers for some H.264 streams. And each buffer can contain plane/field
    data as Y-top, Y-bottom, UV-top and UV-bottom. Each field will be treated
    as a separate FRAME.

    This is a hack because it is not upstreamable as is.
    The VIDEO_MAX_FRAME constant is also used for the older videobuf
    based driver and we do not have any idea of the impact there.
    Please note that the buffer related internal structure in videobuf2 uses
    array to keep track of buffers so this change increase their size
    accordingly regardless of the fact that a specific driver/application only
    needs 8 buffers for example.
    There was a discussion in the upstream mailing list but nothing
    concrete so far: (see provided link)
    http://www.spinics.net/lists/linux-media/msg81859.html

    So this change is tentative until a better solution is available.

    Signed-off-by: Somnath Mukherjee
    Signed-off-by: Nikhil Devshatwar
    Signed-off-by: Benoit Parrot
    Signed-off-by: Jyri Sarha

    Somnath Mukherjee
     

14 Sep, 2015

5 commits

  • commit b7560de198222994374c1340a389f12d5efb244a upstream.

    This helper is required for irq chips which do not implement a
    irq_set_type callback and need to call down the irq domain hierarchy
    for the actual trigger type change.

    This helper is required to fix further wreckage caused by the
    conversion of TI OMAP to hierarchical irq domains and therefor tagged
    for stable.

    [ tglx: Massaged changelog ]

    Signed-off-by: Grygorii Strashko
    Cc: Sudeep Holla
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc: stable@vger.kernel.org # 4.1
    Link: http://lkml.kernel.org/r/1439554830-19502-3-git-send-email-grygorii.strashko@ti.com
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Grygorii Strashko
     
  • commit 74a80d67b8316eb3fbeb73dafc060a5a0a708587 upstream.

    This reverts commit 42b966fbf35da9c87f08d98f9b8978edf9e717cf.

    As implemented, ACS-4 sense reporting for ATA devices bypasses error
    diagnosis and handling in libata degrading EH behavior significantly.
    Revert the related changes for now.

    Signed-off-by: Tejun Heo
    Cc: Hannes Reinecke
    Signed-off-by: Greg Kroah-Hartman

    Tejun Heo
     
  • commit 84ded2f8e7dda336fc2fb3570726ceb3b3b3590f upstream.

    This reverts commit fe7173c206de63fc28475ee6ae42ff95c05692de.

    As implemented, ACS-4 sense reporting for ATA devices bypasses error
    diagnosis and handling in libata degrading EH behavior significantly.
    Revert the related changes for now.

    ATA_ID_COMMAND_SET_3/4 constants are not reverted as they're used by
    later changes.

    Signed-off-by: Tejun Heo
    Cc: Hannes Reinecke
    Signed-off-by: Greg Kroah-Hartman

    Tejun Heo
     
  • commit fe16d4f202c59a560533a223bc6375739ee30944 upstream.

    This reverts commit a1524f226a02aa6edebd90ae0752e97cfd78b159.

    As implemented, ACS-4 sense reporting for ATA devices bypasses error
    diagnosis and handling in libata degrading EH behavior significantly.
    Revert the related changes for now.

    Signed-off-by: Tejun Heo
    Cc: Hannes Reinecke
    Signed-off-by: Greg Kroah-Hartman

    Tejun Heo
     
  • commit e037239e5e7b61007763984aa35a8329596d8c88 upstream.

    Signed-off-by: Alex Deucher
    Signed-off-by: Greg Kroah-Hartman

    Alex Deucher
     

05 Sep, 2015

2 commits


03 Sep, 2015

3 commits

  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
    DT: gpu: add binding for TI SGX driver
    ARM: dts: DRA7xx: add device tree entry for SGX
    ARM: DRA7: Add gpu hwmod data
    HACK: drm/omap: Add omapdrm plugin API
    drm/omap: remove unused plugin defines

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • …el/audio-display-linux-feature-tree into ti-linux-4.1.y

    TI-Feature: audio-display
    TI-Tree: git@git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree.git
    TI-Branch: audio-display-ti-linux-4.1.y

    * 'audio-display-ti-linux-4.1.y' of git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree:
    DT: gpu: add binding for TI SGX driver
    ARM: dts: DRA7xx: add device tree entry for SGX
    ARM: DRA7: Add gpu hwmod data
    HACK: drm/omap: Add omapdrm plugin API
    drm/omap: remove unused plugin defines

    Signed-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>

    Texas Instruments Auto Merger
     
  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
    ARM: DTS: dra7xx-evm-lcd-osd: Add support for capacitive touch controller
    Input: edt-ft5x06 - Add compatible field for FT5506
    Input: edt-ft5x06 - Switch to newer gpio framework
    ARM: OMAP2+: instantiate pm33xx as a platform_driver
    ARM: OMAP2+: Make pm33xx defer probe if we can not open rtc0
    ARM: OMAP2+: Convert pm33xx to module_platform_driver
    ti_config_fragments/baseport.cfg: switch to slub allocator by default
    ti_config_fragments: add a DRA7 only build configuration
    ti_config_fragments/am43x_only.cfg: Create a separate config fragment for am43xx devices
    ti_config_fragments/am33x_only.cfg: Create a separate config fragment for am33xx devices

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     

02 Sep, 2015

3 commits

  • This patch enables SGX driver to be added as a plugin to omapdrm. This
    is a HACK, and must be reverted/rewritten when proper DRM-SGX interop is
    implemented.

    As this is a HACK, the code is wrapped with CONFIG_DRM_OMAP_SGX_PLUGIN,
    and grouped together and separated from the main omapdrm code when
    possible. This means checkpatch will complain a bit, but this should
    make it easier to revert this later and to avoid conflicts with
    mainline.

    Main changes involved:

    1. SGX specific GEM VM operations
    SGX requires contiguous memory for both texture memory as well
    as framebuffers.

    Memory allocation of FB is done through omapdrm and is guaranteed
    to be contiguous.

    Texture memory can come from:
    a. user space allocated memory
    b. memory is allocated by other cores
    c. memory comes from CMA

    Texture memory can be non-contiguous, but is wrapped as GEM
    objects which enables the use of TILER to map them as contiguous
    memory to the SGX HW.

    2. Support for ioctls from plugin driver
    SGX driver registers as a plugin to the omapdrm driver. During
    registration, SGX specific ioctls are added to omapdrm. This allows
    user space to control specific SGX feature sets using the DRM FD.

    3. Export GEM functions
    SGX driver needs to work directly on GEM objects for DSS
    synchronization, getting TILER address, etc.

    Signed-off-by: Rob Clark
    Signed-off-by: Subhajit Paul
    Signed-off-by: Tomi Valkeinen
    Signed-off-by: Anand Balagopalakrishnan
    Signed-off-by: Jyri Sarha

    Rob Clark
     
  • Remove unused defines related to SGX plugin which are not used.

    Signed-off-by: Tomi Valkeinen
    Signed-off-by: Jyri Sarha

    Tomi Valkeinen
     
  • The current/old gpio framework used doesn't properly listen to
    ACTIVE_LOW and ACTIVE_HIGH flags. The newer gpio framework takes into
    account these flags when setting gpio values.

    Since the values being outputed were base on voltage and not logic the
    values being outputted must change to refect this difference. Also use
    gpiod_set_value_cansleep since wake and reset pins can be provided by
    bus based io expanders.

    Switch from msleep(5) to udelay_range(5000,6000) to avoid check patch
    warning.

    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Sekhar Nori

    Franklin S Cooper Jr
     

29 Aug, 2015

3 commits

  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel: (61 commits)
    net/rpmsg: unblock reader threads operating on errored sockets
    net/rpmsg: return ENOLINK upon Rx on errored sockets
    net/rpmsg: return ESHUTDOWN upon Tx on errored sockets
    net/rpmsg: set error status on open sockets after recovery
    net/rpmsg: store remote processor id in rpmsg_socket
    net/rpmsg: use a list to track all connected sockets
    net/rpmsg: add a check to not support multiple published channels
    net/rpmsg: fix memory leak of vrp_channels radix tree
    net/rpmsg: add support for new rpmsg sockets
    rpmsg: add api for creating and deleting rpmsg channels
    TEMP: remoteproc: add legacy support to handle internal memories
    ARM: dts: beagle-x15: Enable PRU-ICSS and the child PRU nodes
    ARM: DRA7: hwmod_data: Add PRU-ICSS data for AM57xx variants
    ARM: dts: beagle-x15: Add mailboxes to the PRU nodes
    ARM: dts: DRA7: Add the PRU-ICSS nodes
    remoteproc/pruss: add support for PRU-ICSS subsystems on AM57xx SoCs
    TI-Integration: add new J6 LCD to A&D fragment
    ARM: DTS: dra7xx-evm: add support for new OSD LCD
    ARM: DTS: dra7xx-evm: separate LCD DT data
    OMAPDSS: Add driver for Toshiba TC358768
    ...

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • TI-Feature: rpmsg
    TI-Tree: git://git.ti.com/rpmsg/rpmsg.git
    TI-Branch: rpmsg-ti-linux-4.1.y

    * 'rpmsg-ti-linux-4.1.y' of git://git.ti.com/rpmsg/rpmsg: (37 commits)
    net/rpmsg: unblock reader threads operating on errored sockets
    net/rpmsg: return ENOLINK upon Rx on errored sockets
    net/rpmsg: return ESHUTDOWN upon Tx on errored sockets
    net/rpmsg: set error status on open sockets after recovery
    net/rpmsg: store remote processor id in rpmsg_socket
    net/rpmsg: use a list to track all connected sockets
    net/rpmsg: add a check to not support multiple published channels
    net/rpmsg: fix memory leak of vrp_channels radix tree
    net/rpmsg: add support for new rpmsg sockets
    rpmsg: add api for creating and deleting rpmsg channels
    TEMP: remoteproc: add legacy support to handle internal memories
    ARM: dts: beagle-x15: Enable PRU-ICSS and the child PRU nodes
    ARM: DRA7: hwmod_data: Add PRU-ICSS data for AM57xx variants
    ARM: dts: beagle-x15: Add mailboxes to the PRU nodes
    ARM: dts: DRA7: Add the PRU-ICSS nodes
    remoteproc/pruss: add support for PRU-ICSS subsystems on AM57xx SoCs
    remoteproc/pruss: add support for PRU-ICSS1 on AM437x SoCs
    ARM: OMAP2+: extend pruss pdata-quirks to AM4372
    ARM: dts: AM4372: Add the PRU-ICSS1 DT node
    remoteproc/pruss: add pru-specific debugfs support
    ...

    Signed-off-by: Dan Murphy

    Conflicts:
    arch/arm/boot/dts/am57xx-beagle-x15.dts
    arch/arm/mach-omap2/omap_hwmod_7xx_data.c
    arch/arm/mach-omap2/pdata-quirks.c

    Dan Murphy
     
  • Pull in the updated rpmsg base feature branch that adds a new
    rpmsg bus driver, rpmsg-proto. The rpmsg-proto driver implements
    a remote processor socket interface, and supports the MessageQ
    API in the IPC product.

    The merge also includes an temporary enhancement to the rpmsg
    core to enable the rpmsg-proto driver and various bug fixes during
    error recovery with active open sockets.

    * 'rpmsg-linux-4.1.y' of git://git.ti.com/rpmsg/rpmsg:
    net/rpmsg: unblock reader threads operating on errored sockets
    net/rpmsg: return ENOLINK upon Rx on errored sockets
    net/rpmsg: return ESHUTDOWN upon Tx on errored sockets
    net/rpmsg: set error status on open sockets after recovery
    net/rpmsg: store remote processor id in rpmsg_socket
    net/rpmsg: use a list to track all connected sockets
    net/rpmsg: add a check to not support multiple published channels
    net/rpmsg: fix memory leak of vrp_channels radix tree
    net/rpmsg: add support for new rpmsg sockets
    rpmsg: add api for creating and deleting rpmsg channels

    Signed-off-by: Suman Anna

    Suman Anna