08 Jun, 2013

1 commit

  • …l/git/rostedt/linux-trace

    Pull tracing fixes from Steven Rostedt:
    "This contains 4 fixes.

    The first two fix the case where full RCU debugging is enabled,
    enabling function tracing causes a live lock of the system. This is
    due to the added debug checks in rcu_dereference_raw() that is used by
    the function tracer. These checks are also traced by the function
    tracer as well as cause enough overhead to the function tracer to slow
    down the system enough that the time to finish an interrupt can take
    longer than when the next interrupt is triggered, causing a live lock
    from the timer interrupt.

    Talking this over with Paul McKenney, we came up with a fix that adds
    a new rcu_dereference_raw_notrace() that does not perform these added
    checks, and let the function tracer use that.

    The third commit fixes a failed compile when branch tracing is
    enabled, due to the conversion of the trace_test_buffer() selftest
    that the branch trace wasn't converted for.

    The forth patch fixes a bug caught by the RCU lockdep code where a
    rcu_read_lock() is performed when rcu is disabled (either going to or
    from idle, or user space). This happened on the irqsoff tracer as it
    calls task_uid(). The fix here was to use current_uid() when possible
    that doesn't use rcu locking. Which luckily, is always used when
    irqsoff calls this code."

    * tag 'trace-fixes-v3.10-rc3-v3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    tracing: Use current_uid() for critical time tracing
    tracing: Fix bad parameter passed in branch selftest
    ftrace: Use the rcu _notrace variants for rcu_dereference_raw() and friends
    rcu: Add _notrace variation of rcu_dereference_raw() and hlist_for_each_entry_rcu()

    Linus Torvalds
     

07 Jun, 2013

2 commits

  • Pull networking fix from David Miller:
    "This is a quick one commit pull request to cure the regression
    introduced by the MSG_CMSG_COMPAT change."

    (Background: commit 1be374a0518a completely broke 32-bit COMPAT handling
    by not only disallowing MSG_CMSG_COMPAT from user APIs, but clearing it
    in our own internal use too!)

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    net: Unbreak compat_sys_{send,recv}msg

    Linus Torvalds
     
  • I broke them in this commit:

    commit 1be374a0518a288147c6a7398792583200a67261
    Author: Andy Lutomirski
    Date: Wed May 22 14:07:44 2013 -0700

    net: Block MSG_CMSG_COMPAT in send(m)msg and recv(m)msg

    This patch adds __sys_sendmsg and __sys_sendmsg as common helpers that accept
    MSG_CMSG_COMPAT and blocks MSG_CMSG_COMPAT at the syscall entrypoints. It
    also reverts some unnecessary checks in sys_socketcall.

    Apparently I was suffering from underscore blindness the first time around.

    Signed-off-by: Andy Lutomirski
    Tested-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Andy Lutomirski
     

06 Jun, 2013

1 commit

  • Since the introduction of preemptible mmu_gather TLB fast mode has been
    broken. TLB fast mode relies on there being absolutely no concurrency;
    it frees pages first and invalidates TLBs later.

    However now we can get concurrency and stuff goes *bang*.

    This patch removes all tlb_fast_mode() code; it was found the better
    option vs trying to patch the hole by entangling tlb invalidation with
    the scheduler.

    Cc: Thomas Gleixner
    Cc: Russell King
    Cc: Tony Luck
    Reported-by: Max Filippov
    Signed-off-by: Peter Zijlstra
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     

05 Jun, 2013

1 commit

  • Pull networking fixes from David Miller:

    1) Fix timeouts with direct mode authentication in mac80211, from
    Stanislaw Gruszka.

    2) Aggregation sessions can deadlock in ath9k, from Felix Fietkau.

    3) Netfilter's xt_addrtype doesn't work with ipv6 due to route lookups
    creating undesirable cache entries, from Florian Westphal.

    4) Fix netfilter's ipt_ULOG from generating non-NULL terminated
    strings.

    5) Fix netdev transmit queue crashes in mac80211, from Johannes Berg.

    6) Fix copy and paste error in 802.11 stack that broke reporting of
    64-bit station tx statistics, from Felix Fietkau.

    7) When qlge_probe fails, it leaks the netdev. Fix from Wei Yongjun.

    8) SKB control block (where we store the IP options information,
    amongst other things) must be cleared properly otherwise ICMP
    sending can crash for IP tunnels. Fix from Eric Dumazet.

    9) Verification of Energy Efficient Ether support was coded wrongly,
    the test was inversed. Fix from Giuseppe CAVALLARO.

    10) TCP handles redirects improperly because the wrong flow key is used
    for the route lookup. From Michal Kubecek.

    11) Don't interpret MSG_CMSG_COMPAT from userspace, fix from Andy
    Lutomirski.

    12) The new AF_VSOCK was missing from the lockdep string table, fix from
    Federico Vaga.

    13) be2net doesn't handle checksumming of IP fragments properly, from
    Somnath Kotur.

    14) Fix several bugs in the device address list code that lead to
    crashes and other misbehaviors. From Jay Vosburgh.

    15) Fix ipv6 segmentation handling of fragmented GRE tunnel traffic,
    from Pravin B Shalr.

    16) Fix usage of stale policies in IPSEC layer, from Paul Moore.

    17) Fix team driver dump of ports when there are a large number of them,
    from Jiri Pirko.

    18) Fix softlockups in UDP ipv4 socket lookup causes by and error in the
    hlist_nulls_for_each_entry_rcu() macro. From Eric Dumazet.

    19) Fix several regressions added by the high rate accuracy changes to
    the htb packet scheduler. From Eric Dumazet.

    20) Fix DMA'ing onto the stack in esd_usb2 and peak_usb CAN drivers,
    from Olivier Sobrie and Marc Kleine-Budde.

    21) Fix unremovable network devices due to missing route pointer
    installation in the per-device ipv6 address list entries. From Gao
    feng.

    22) Apply the tg3 5719 DMA workaround on 5720 chips as well, otherwise
    we get stalls. From Nithin Sujir.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (68 commits)
    net_sched: htb: do not mix 1ns and 64ns time units
    net: fix sk_buff head without data area
    tg3: Add read dma workaround for 5720
    net: ethernet: xilinx_emaclite: set protocol selector bits when writing ANAR
    bnx2x: Fix bridged GSO for 57710/57711 chips
    net: fec: add fallback to random MAC address
    bnx2x: fix TCP offload for tunneling ipv4 over ipv6
    ipv6: assign rt6_info to inet6_ifaddr in init_loopback
    net/mlx4_core: Keep VF assigned MAC in the PF admin table
    net/mlx4_en: Handle unassigned VF MAC address correctly
    net/mlx4_core: Return -EPROBE_DEFER when a VF is probed before PF is sufficiently initialized
    net/mlx4_en: Fix adaptive moderation cq update
    net: can: peak_usb: Do not do dma on the stack
    net: can: esd_usb2: Do not do dma on the stack
    net: can: kvaser_usb: fix reception on "USBcan Pro" and "USBcan R" type hardware.
    net_sched: restore "overhead xxx" handling
    net: force a reload of first item in hlist_nulls_for_each_entry_rcu
    hyperv: Fix vlan_proto setting in netvsc_recv_callback()
    team: fix port list dump for big number of ports
    list: introduce list_first_entry_or_null
    ...

    Linus Torvalds
     

03 Jun, 2013

4 commits

  • Pull s390 fixes from Martin Schwidefsky:
    "Recent bug fixes, one of them touches a common code file.

    It adds two #ifndef/#endif pairs to asm-generic/io.h to be able to
    override xlate_dev_kmem_ptr and xlate_dev_mem_ptr."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/pgtable: Fix gmap notifier address
    s390/dasd: fix handling of gone paths
    s390/pgtable: Fix check for pgste/storage key handling
    arch: s390: appldata: using strncpy() and strnlen() instead of sprintf()
    s390/smp: lost IPIs on cpu hotplug
    kernel: Fix s390 absolute memory access for /dev/mem
    s390/dma: do not call debug_dma after free

    Linus Torvalds
     
  • Pull cgroup fixes from Tejun Heo:

    - Fix for yet another xattr bug which may lead to NULL deref.

    - A subtle bug in for_each_descendant_pre(). This bug requires quite
    specific conditions to trigger and isn't too likely to actually
    happen in the wild, but maybe that just makes it that much more
    nastier.

    - A warning message added for silly cgroup re-mount (not -o remount,
    but unmount followed by mount) behavior.

    * 'for-3.10-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cgroup: warn about mismatching options of a new mount of an existing hierarchy
    cgroup: fix a subtle bug in descendant pre-order walk
    cgroup: initialize xattr before calling d_instantiate()

    Linus Torvalds
     
  • commit 56b765b79 ("htb: improved accuracy at high rates")
    broke the "overhead xxx" handling, as well as the "linklayer atm"
    attribute.

    tc class add ... htb rate X ceil Y linklayer atm overhead 10

    This patch restores the "overhead xxx" handling, for htb, tbf
    and act_police

    The "linklayer atm" thing needs a separate fix.

    Reported-by: Jesper Dangaard Brouer
    Signed-off-by: Eric Dumazet
    Cc: Vimalkumar
    Cc: Jiri Pirko
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Roman Gushchin discovered that udp4_lib_lookup2() was not reloading
    first item in the rcu protected list, in case the loop was restarted.

    This produced soft lockups as in https://lkml.org/lkml/2013/4/16/37

    rcu_dereference(X)/ACCESS_ONCE(X) seem to not work as intended if X is
    ptr->field :

    In some cases, gcc caches the value or ptr->field in a register.

    Use a barrier() to disallow such caching, as documented in
    Documentation/atomic_ops.txt line 114

    Thanks a lot to Roman for providing analysis and numerous patches.

    Diagnosed-by: Roman Gushchin
    Signed-off-by: Eric Dumazet
    Reported-by: Boris Zhmurov
    Signed-off-by: Roman Gushchin
    Acked-by: Paul E. McKenney
    Signed-off-by: David S. Miller

    Eric Dumazet
     

01 Jun, 2013

6 commits

  • Pull scsi target fixes from Nicholas Bellinger:
    "The highlights include:

    - Re-instate sess->wait_list in target_wait_for_sess_cmds() for
    active I/O shutdown handling in fabrics using se_cmd->cmd_kref
    - Make ib_srpt call target_sess_cmd_list_set_waiting() during session
    shutdown
    - Fix FILEIO off-by-one READ_CAPACITY bug for !S_ISBLK export
    - Fix iscsi-target login error heap buffer overflow (Kees)
    - Fix iscsi-target active I/O shutdown handling regression in
    v3.10-rc1

    A big thanks to Kees Cook for fixing a long standing login error
    buffer overflow bug.

    All patches are CC'ed to stable with the exception of the v3.10-rc1
    specific regression + other minor target cleanup."

    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    iscsi-target: Fix iscsit_free_cmd() se_cmd->cmd_kref shutdown handling
    target: Propigate up ->cmd_kref put return via transport_generic_free_cmd
    iscsi-target: fix heap buffer overflow on error
    target/file: Fix off-by-one READ_CAPACITY bug for !S_ISBLK export
    ib_srpt: Call target_sess_cmd_list_set_waiting during shutdown_session
    target: Re-instate sess_wait_list for target_wait_for_sess_cmds
    target: Remove unused wait_for_tasks bit in target_wait_for_sess_cmds

    Linus Torvalds
     
  • Pull fbdev fixes from Jean-Christophe PLAGNIOL-VILLARD:
    "This contains some small fixes

    - Atmel LCDC: fix blank the backlight on remove
    - ps3fb: fix compile warning
    - OMAPDSS: Fix crash with DT boot"

    * tag 'fbdev-for-3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/plagnioj/linux-fbdev:
    atmel_lcdfb: blank the backlight on remove
    trivial: atmel_lcdfb: add missing error message
    OMAPDSS: Fix crash with DT boot
    fbdev/ps3fb: fix compile warning

    Linus Torvalds
     
  • non-rcu variant of list_first_or_null_rcu

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • In some cases after deleting a policy from the SPD the policy would
    remain in the dst/flow/route cache for an extended period of time
    which caused problems for SELinux as its dynamic network access
    controls key off of the number of XFRM policy and state entries.
    This patch corrects this problem by forcing a XFRM garbage collection
    whenever a policy is sucessfully removed.

    Reported-by: Ondrej Moris
    Signed-off-by: Paul Moore
    Signed-off-by: David S. Miller

    Paul Moore
     
  • udp6 over GRE tunnel does not work after to GRE tso changes. GRE
    tso handler passes inner packet but keeps track of outer header
    start in SKB_GSO_CB(skb)->mac_offset. udp6 fragment need to
    take care of outer header, which start at the mac_offset, while
    adding fragment header.
    This bug is introduced by commit 68c3316311 (GRE: Add TCP
    segmentation offload for GRE).

    Reported-by: Dmitry Kravkov
    Signed-off-by: Pravin B Shelar
    Tested-by: Dmitry Kravkov
    Signed-off-by: David S. Miller

    Pravin B Shelar
     
  • Pull aer error logging fix from Tony Luck:
    "Can't call pci_get_domain_bus_and_slot() from interupt context"

    * tag 'please-pull-aertracefix' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
    aerdrv: Move cper_print_aer() call out of interrupt context

    Linus Torvalds
     

31 May, 2013

4 commits

  • Go ahead and propigate up the ->cmd_kref put return value from
    target_put_sess_cmd() -> transport_release_cmd() -> transport_put_cmd()
    -> transport_generic_free_cmd().

    This is useful for certain fabrics when determining the active I/O
    shutdown case with SCF_ACK_KREF where a final target_put_sess_cmd()
    is still required by the caller.

    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • Pablo Neira Ayuso says:

    ====================
    The following patchset contains Netfilter/IPVS fixes for 3.10-rc3,
    they are:

    * fix xt_addrtype with IPv6, from Florian Westphal. This required
    a new hook for IPv6 functions in the netfilter core to avoid
    hard dependencies with the ipv6 subsystem when this match is
    only used for IPv4.

    * fix connection reuse case in IPVS. Currently, if an reused
    connection are directed to the same server. If that server is
    down, those connection would fail. Therefore, clear the
    connection and choose a new server among the available ones.

    * fix possible non-nul terminated string sent to user-space if
    ipt_ULOG is used as the default netfilter logging stub, from
    Chen Gang.

    * fix mark logging of IPv6 packets in xt_LOG, from Michal Kubecek.
    This bug has been there since 2.6.26.

    * Fix breakage ip_vs_sh due to incorrect structure layout for
    RCU, from Jan Beulich.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • …kernel/git/konrad/xen

    Pull Xen fixes from Konrad Rzeszutek Wilk:
    - Use proper error paths
    - Clean up APIC IPI usage (incorrect arguments)
    - Delay XenBus frontend resume is backend (xenstored) is not running
    - Fix build error with various combinations of CONFIG_

    * tag 'stable/for-linus-3.10-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xenbus_client.c: correct exit path for xenbus_map_ring_valloc_hvm
    xen-pciback: more uses of cached MSI-X capability offset
    xen: Clean up apic ipi interface
    xenbus: save xenstore local status for later use
    xenbus: delay xenbus frontend resume if xenstored is not running
    xmem/tmem: fix 'undefined variable' build error.

    Linus Torvalds
     
  • The following warning was seen on 3.9 when a corrected PCIe error was being
    handled by the AER subsystem.

    WARNING: at .../drivers/pci/search.c:214 pci_get_dev_by_id+0x8a/0x90()

    This occurred because a call to pci_get_domain_bus_and_slot() was added to
    cper_print_pcie() to setup for the call to cper_print_aer(). The warning
    showed up because cper_print_pcie() is called in an interrupt context and
    pci_get* functions are not supposed to be called in that context.

    The solution is to move the cper_print_aer() call out of the interrupt
    context and into aer_recover_work_func() to avoid any warnings when calling
    pci_get* functions.

    Signed-off-by: Lance Ortiz
    Acked-by: Borislav Petkov
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Tony Luck

    Lance Ortiz
     

30 May, 2013

1 commit

  • Switch back to pre commit 1c7b13fe652 list splicing logic for active I/O
    shutdown with tcm_qla2xxx + ib_srpt fabrics.

    The original commit was done under the incorrect assumption that it's safe to
    walk se_sess->sess_cmd_list unprotected in target_wait_for_sess_cmds() after
    sess->sess_tearing_down = 1 has been set by target_sess_cmd_list_set_waiting()
    during session shutdown.

    So instead of adding sess->sess_cmd_lock protection around sess->sess_cmd_list
    during target_wait_for_sess_cmds(), switch back to sess->sess_wait_list to
    allow wait_for_completion() + TFO->release_cmd() to occur without having to
    walk ->sess_cmd_list after the list_splice.

    Also add a check to exit if target_sess_cmd_list_set_waiting() has already
    been called, and add a WARN_ON to check for any fabric bug where new se_cmds
    are added to sess->sess_cmd_list after sess->sess_tearing_down = 1 has already
    been set.

    Cc: Joern Engel
    Cc: Roland Dreier
    Cc: stable@vger.kernel.org
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     

29 May, 2013

3 commits

  • If the xenbus frontend is located in a domain running xenstored, the device
    resume is hanging because it is happening before the process resume. This
    patch adds extra logic to the resume code to check if we are the domain
    running xenstored and delay the resume if needed.

    Signed-off-by: Aurelien Chartier
    [Changes in v2:
    - Instead of bypassing the resume, process it in a workqueue]
    [Changes in v3:
    - Add a struct work in xenbus_device to avoid dynamic allocation
    - Several small code fixes]
    [Changes in v4:
    - Use a dedicated workqueue]
    [Changes in v5:
    - Move create_workqueue error handling to xenbus_frontend_dev_resume]
    Acked-by: Jan Beulich
    Signed-off-by: Konrad Rzeszutek Wilk

    Aurelien Chartier
     
  • …o linux-fbdev/for-3.10-fixes

    Pull Tomi fixes for ps3fb and omap2

    Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

    Jean-Christophe PLAGNIOL-VILLARD
     
  • As rcu_dereference_raw() under RCU debug config options can add quite a
    bit of checks, and that tracing uses rcu_dereference_raw(), these checks
    happen with the function tracer. The function tracer also happens to trace
    these debug checks too. This added overhead can livelock the system.

    Add a new interface to RCU for both rcu_dereference_raw_notrace() as well
    as hlist_for_each_entry_rcu_notrace() as the hlist iterator uses the
    rcu_dereference_raw() as well, and is used a bit with the function tracer.

    Link: http://lkml.kernel.org/r/20130528184209.304356745@goodmis.org

    Acked-by: Paul E. McKenney
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

26 May, 2013

2 commits

  • Pull power management and ACPI fixes from Rafael Wysocki:

    - Additional CPU ID for the intel_pstate driver from Dirk Brandewie.

    - More cpufreq fixes related to ARM big.LITTLE support and locking from
    Viresh Kumar.

    - VIA C7 cpufreq build fix from Rafał Bilski.

    - ACPI power management fix making it possible to use device power
    states regardless of the CONFIG_PM setting from Rafael J Wysocki.

    - New ACPI video blacklist item from Bastian Triller.

    * tag 'pm+acpi-3.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / video: Add "Asus UL30A" to ACPI video detect blacklist
    cpufreq: arm_big_little_dt: Instantiate as platform_driver
    cpufreq: arm_big_little_dt: Register driver only if DT has valid data
    cpufreq / e_powersaver: Fix linker error when ACPI processor is a module
    cpufreq / intel_pstate: Add additional supported CPU ID
    cpufreq: Drop rwsem lock around CPUFREQ_GOV_POLICY_EXIT
    ACPI / PM: Allow device power states to be used for CONFIG_PM unset

    Linus Torvalds
     
  • Pull slave-dma fixes from Vinod Koul:
    "We have two patches from Andy & Rafael fixing the Lynxpoint dma"

    * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
    ACPI / LPSS: register clock device for Lynxpoint DMA properly
    dma: acpi-dma: parse CSRT to extract additional resources

    Linus Torvalds
     

25 May, 2013

6 commits

  • Merge fixes from Andrew Morton:
    "A bunch of fixes and one simple fbdev driver which missed the merge
    window because people will still talking about it (to no great
    effect)."

    * emailed patches from Andrew Morton : (30 commits)
    aio: fix kioctx not being freed after cancellation at exit time
    mm/pagewalk.c: walk_page_range should avoid VM_PFNMAP areas
    drivers/rtc/rtc-max8998.c: check for pdata presence before dereferencing
    ocfs2: goto out_unlock if ocfs2_get_clusters_nocache() failed in ocfs2_fiemap()
    random: fix accounting race condition with lockless irq entropy_count update
    drivers/char/random.c: fix priming of last_data
    mm/memory_hotplug.c: fix printk format warnings
    nilfs2: fix issue of nilfs_set_page_dirty() for page at EOF boundary
    drivers/block/brd.c: fix brd_lookup_page() race
    fbdev: FB_GOLDFISH should depend on HAS_DMA
    drivers/rtc/rtc-pl031.c: pass correct pointer to free_irq()
    auditfilter.c: fix kernel-doc warnings
    aio: fix io_getevents documentation
    revert "selftest: add simple test for soft-dirty bit"
    drivers/leds/leds-ot200.c: fix error caused by shifted mask
    mm/THP: use pmd_populate() to update the pmd with pgtable_t pointer
    linux/kernel.h: fix kernel-doc warning
    mm compaction: fix of improper cache flush in migration code
    rapidio/tsi721: fix bug in MSI interrupt handling
    hfs: avoid crash in hfs_bnode_create
    ...

    Linus Torvalds
     
  • Pull ARM SoC fixes from Olof Johansson:
    "We didn't have any fixes sent up for -rc2, so this is a slightly
    larger batch. A bit all over the place platform-wise; OMAP, at91,
    marvell, renesas, sunxi, ux500, etc.

    I tried to summarize highlights but there isn't a whole lot to point
    out. Lots of little things fixed all over. A couple of defconfig
    updates due to new/changing options."

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (44 commits)
    ARM: at91/sama5: fix incorrect PMC pcr div definition
    ARM: at91/dt: fix macb pinctrl_macb_rmii_mii_alt definition
    ARM: at91: at91sam9n12: move external irq declatation to DT
    ARM: shmobile: marzen: Use error values in usb_power_*
    ARM: tegra: defconfig fixes
    ARM: nomadik: fix IRQ assignment for SMC ethernet
    ARM: vt8500: Add missing NULL terminator in dt_compat
    clk: tegra: add ac97 controller clock
    clk: tegra: remove USB from clk init table
    ARM: dts: mvebu: Fix wrong the address reg value for the L2-cache node
    ARM: plat-orion: Fix num_resources and id for ge10 and ge11
    ARM: OMAP2+: hwmod: Remove sysc slave idle and auto idle apis
    SERIAL: OMAP: Remove the slave idle handling from the driver
    ARM: OMAP2+: serial: Remove the un-used slave idle hooks
    ARM: OMAP2+: hwmod-data: UART IP needs software control to manage sidle modes
    ARM: OMAP2+: hwmod: Add a new flag to handle SIDLE in SWSUP only in active
    ARM: OMAP2+: hwmod: Fix sidle programming in _enable_sysc()/_idle_sysc()
    arm: mvebu: fix the 'ranges' property to handle PCIe
    ARM: mvebu: select ARCH_REQUIRE_GPIOLIB for mvebu platform
    ARM: AM33XX: Add missing .clkdm_name to clkdiv32k_ick clock
    ...

    Linus Torvalds
     
  • Fix kernel-doc warning in :

    Warning(include/linux/kernel.h:590): No description found for parameter 'ip'

    scripts/kernel-doc cannot handle macros, functions, or function
    prototypes between the function or macro that is being documented and
    its definition, so move these prototypes above the function that is
    being documented.

    Signed-off-by: Randy Dunlap
    Cc: Steven Rostedt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Many callers of the wait_event_timeout() and
    wait_event_interruptible_timeout() expect that the return value will be
    positive if the specified condition becomes true before the timeout
    elapses. However, at the moment this isn't guaranteed. If the wake-up
    handler is delayed enough, the time remaining until timeout will be
    calculated as 0 - and passed back as a return value - even if the
    condition became true before the timeout has passed.

    Fix this by returning at least 1 if the condition becomes true. This
    semantic is in line with what wait_for_condition_timeout() does; see
    commit bb10ed09 ("sched: fix wait_for_completion_timeout() spurious
    failure under heavy load").

    Daniel said "We have 3 instances of this bug in drm/i915. One case even
    where we switch between the interruptible and not interruptible
    wait_event_timeout variants, foolishly presuming they have the same
    semantics. I very much like this."

    One such bug is reported at
    https://bugs.freedesktop.org/show_bug.cgi?id=64133

    Signed-off-by: Imre Deak
    Acked-by: Daniel Vetter
    Acked-by: David Howells
    Acked-by: Jens Axboe
    Cc: "Paul E. McKenney"
    Cc: Dave Jones
    Cc: Lukas Czerner
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Imre Deak
     
  • Add RapidIO enumeration/discovery start from user space. User space
    start allows to defer RapidIO fabric scan until the moment when all
    participating endpoints are initialized avoiding mandatory synchronized
    start of all endpoints (which may be challenging in systems with large
    number of RapidIO endpoints).

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Cc: Andre van Herk
    Cc: Micha Nelissen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Systems that use RapidIO fabric may need to implement their own
    enumeration and discovery methods which are better suitable for needs of
    a target application.

    The following set of patches is intended to simplify process of
    introduction of new RapidIO fabric enumeration/discovery methods.

    The first patch offers ability to add new RapidIO enumeration/discovery
    methods using kernel configuration options. This new configuration
    option mechanism allows to select statically linked or modular
    enumeration/discovery method(s) from the list of existing methods or use
    external module(s).

    This patch also updates the currently existing enumeration/discovery
    code to be used as a statically linked or modular method.

    The corresponding configuration option is named "Basic
    enumeration/discovery" method. This is the only one configuration
    option available today but new methods are expected to be introduced
    after adoption of provided patches.

    The second patch address a long time complaint of RapidIO subsystem
    users regarding fabric enumeration/discovery start sequence. Existing
    implementation offers only a boot-time enumeration/discovery start which
    requires synchronized boot of all endpoints in RapidIO network. While
    it works for small closed configurations with limited number of
    endpoints, using this approach in systems with large number of endpoints
    is quite challenging.

    To eliminate requirement for synchronized start the second patch
    introduces RapidIO enumeration/discovery start from user space.

    For compatibility with the existing RapidIO subsystem implementation,
    automatic boot time enumeration/discovery start can be configured in by
    specifying "rio-scan.scan=1" command line parameter if statically linked
    basic enumeration method is selected.

    This patch:

    Rework to implement RapidIO enumeration/discovery method selection
    combined with ability to use enumeration/discovery as a kernel module.

    This patch adds ability to introduce new RapidIO enumeration/discovery
    methods using kernel configuration options. Configuration option
    mechanism allows to select statically linked or modular
    enumeration/discovery method from the list of existing methods or use
    external modules. If a modular enumeration/discovery is selected each
    RapidIO mport device can have its own method attached to it.

    The existing enumeration/discovery code was updated to be used as
    statically linked or modular method. This configuration option is named
    "Basic enumeration/discovery" method.

    Several common routines have been moved from rio-scan.c to make them
    available to other enumeration methods and reduce number of exported
    symbols.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Cc: Andre van Herk
    Cc: Micha Nelissen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     

24 May, 2013

5 commits

  • Pull networking fixes from David Miller:
    "It's been a while since my last pull request so quite a few fixes have
    piled up."

    Indeed.

    1) Fix nf_{log,queue} compilation with PROC_FS disabled, from Pablo
    Neira Ayuso.

    2) Fix data corruption on some tg3 chips with TSO enabled, from Michael
    Chan.

    3) Fix double insertion of VLAN tags in be2net driver, from Sarveshwar
    Bandi.

    4) Don't have TCP's MD5 support pass > PAGE_SIZE page offsets in
    scatter-gather entries into the crypto layer, the crypto layer can't
    handle that. From Eric Dumazet.

    5) Fix lockdep splat in 802.1Q MRP code, also from Eric Dumazet.

    6) Fix OOPS in netfilter log module when called from conntrack, from
    Hans Schillstrom.

    7) FEC driver needs to use netif_tx_{lock,unlock}_bh() rather than the
    non-BH disabling variants. From Fabio Estevam.

    8) TCP GSO can generate out-of-order packets, fix from Eric Dumazet.

    9) vxlan driver doesn't update 'used' field of fdb entries when it
    should, from Sridhar Samudrala.

    10) ipv6 should use kzalloc() to allocate inet6 socket cork options,
    otherwise we can OOPS in ip6_cork_release(). From Eric Dumazet.

    11) Fix races in bonding set mode, from Nikolay Aleksandrov.

    12) Fix checksum generation regression added by "r8169: fix 8168evl
    frame padding.", from Francois Romieu.

    13) ip_gre can look at stale SKB data pointer, fix from Eric Dumazet.

    14) Fix checksum handling when GSO is enabled in bnx2x driver with
    certain chips, from Yuval Mintz.

    15) Fix double free in batman-adv, from Martin Hundebøll.

    16) Fix device startup synchronization with firmware in tg3 driver, from
    Nithin Sujit.

    17) perf networking dropmonitor doesn't work at all due to mixed up
    trace parameter ordering, from Ben Hutchings.

    18) Fix proportional rate reduction handling in tcp_ack(), from Nandita
    Dukkipati.

    19) IPSEC layer doesn't return an error when a valid state is detected,
    causing an OOPS. Fix from Timo Teräs.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (85 commits)
    be2net: bug fix on returning an invalid nic descriptor
    tcp: xps: fix reordering issues
    net: Revert unused variable changes.
    xfrm: properly handle invalid states as an error
    virtio_net: enable napi for all possible queues during open
    tcp: bug fix in proportional rate reduction.
    net: ethernet: sun: drop unused variable
    net: ethernet: korina: drop unused variable
    net: ethernet: apple: drop unused variable
    qmi_wwan: Added support for Cinterion's PLxx WWAN Interface
    perf: net_dropmonitor: Remove progress indicator
    perf: net_dropmonitor: Use bisection in symbol lookup
    perf: net_dropmonitor: Do not assume ordering of dictionaries
    perf: net_dropmonitor: Fix symbol-relative addresses
    perf: net_dropmonitor: Fix trace parameter order
    net: fec: use a more proper compatible string for MVF type device
    qlcnic: Fix updating netdev->features
    qlcnic: remove netdev->trans_start updates within the driver
    qlcnic: Return proper error codes from probe failure paths
    tg3: Update version to 3.132
    ...

    Linus Torvalds
     
  • When cgroup_next_descendant_pre() initiates a walk, it checks whether
    the subtree root doesn't have any children and if not returns NULL.
    Later code assumes that the subtree isn't empty. This is broken
    because the subtree may become empty inbetween, which can lead to the
    traversal escaping the subtree by walking to the sibling of the
    subtree root.

    There's no reason to have the early exit path. Remove it along with
    the later assumption that the subtree isn't empty. This simplifies
    the code a bit and fixes the subtle bug.

    While at it, fix the comment of cgroup_for_each_descendant_pre() which
    was incorrectly referring to ->css_offline() instead of
    ->css_online().

    Signed-off-by: Tejun Heo
    Reviewed-by: Michal Hocko
    Cc: stable@vger.kernel.org

    Tejun Heo
     
  • Pull PCI updates from Bjorn Helgaas:
    "Here are some more fixes for v3.10. The Moorestown update broke Intel
    Medfield devices, so I reverted it. The acpiphp change fixes a
    regression: we broke hotplug notifications to host bridges when we
    split acpiphp into the host-bridge related part and the
    endpoint-related part.

    Moorestown
    Revert "x86/pci/mrst: Use configuration mechanism 1 for 00:00.0, 00:02.0, 00:03.0"
    Hotplug
    PCI: acpiphp: Re-enumerate devices when host bridge receives Bus Check"

    * tag 'pci-v3.10-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    Revert "x86/pci/mrst: Use configuration mechanism 1 for 00:00.0, 00:02.0, 00:03.0"
    PCI: acpiphp: Re-enumerate devices when host bridge receives Bus Check

    Linus Torvalds
     
  • Pull tty/serial fixes from Greg Kroah-Hartman:
    "Here are some tty / serial driver fixes for 3.10-rc2.

    Nothing huge, although the rocket driver fix looks large, it's just
    moving the code around to fix the reported build issues in it. Other
    than that, this has the fix for the of-reported lockdep warning from
    the vt layer, as well as some other needed bugfixes.

    All of these have been in linux-next for a while"

    * tag 'tty-3.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    tty: mxser: Fix build warning introduced by dfc7b837c7f9 (Re: linux-next: build warning after merge of the tty.current tree)
    tty: mxser: fix usage of opmode_ioaddr
    serial: 8250_dw: add ACPI ID for Intel BayTrail
    TTY: Fix tty miss restart after we turn off flow-control
    tty/vt: Fix vc_deallocate() lock order
    TTY: ehv_bytechan: add missing platform_driver_unregister() when module exit
    TTY: rocket, fix more no-PCI warnings
    serial: mcf: missing uart_unregister_driver() on error in mcf_init()
    tty: serial: mpc5xxx: fix error handing in mpc52xx_uart_init()
    serial: samsung: add missing platform_driver_unregister() when module exit
    serial: pl011: protect attribute read from NULL platform data struct
    tty: nwpserial: Pass correct pointer to free_irq()
    serial: 8250_dw: Add valid clk pointer check

    Linus Torvalds
     
  • Pull USB fixes from Greg Kroah-Hartman:
    "Here are a number of tiny USB bugfixes / new device ids for 3.10-rc2

    The majority of these are USB gadget fixes, but they are all small.
    Other than that, some USB host controller fixes, and USB serial driver
    fixes for problems reported with them.

    Also hopefully a fixed up USB_OTG Kconfig dependancy, that one seems
    to be almost impossible to get right for all of the different
    platforms these days."

    * tag 'usb-3.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (56 commits)
    USB: cxacru: potential underflow in cxacru_cm_get_array()
    USB: ftdi_sio: Add support for Newport CONEX motor drivers
    USB: option: add device IDs for Dell 5804 (Novatel E371) WWAN card
    usb: ohci: fix goto wrong tag in err case
    usb: isp1760-if: fix memleak when platform_get_resource fail
    usb: ehci-s5p: fix memleak when fallback to pdata
    USB: serial: clean up chars_in_buffer
    USB: ti_usb_3410_5052: fix chars_in_buffer overhead
    USB: io_ti: fix chars_in_buffer overhead
    USB: ftdi_sio: fix chars_in_buffer overhead
    USB: ftdi_sio: clean up get_modem_status
    USB: serial: add generic wait_until_sent implementation
    USB: serial: add wait_until_sent operation
    USB: set device dma_mask without reference to global data
    USB: Blacklisted Cinterion's PLxx WWAN Interface
    usb: option: Add Telewell TW-LTE 4G
    USB: EHCI: remove bogus #error
    USB: reset resume quirk needed by a hub
    USB: usb-stor: realtek_cr: Fix compile error
    usb, chipidea: fix link error when USB_EHCI_HCD is a module
    ...

    Linus Torvalds
     

23 May, 2013

4 commits

  • Quoting https://bugzilla.netfilter.org/show_bug.cgi?id=812:

    [ ip6tables -m addrtype ]
    When I tried to use in the nat/PREROUTING it messes up the
    routing cache even if the rule didn't matched at all.
    [..]
    If I remove the --limit-iface-in from the non-working scenario, so just
    use the -m addrtype --dst-type LOCAL it works!

    This happens when LOCAL type matching is requested with --limit-iface-in,
    and the default ipv6 route is via the interface the packet we test
    arrived on.

    Because xt_addrtype uses ip6_route_output, the ipv6 routing implementation
    creates an unwanted cached entry, and the packet won't make it to the
    real/expected destination.

    Silently ignoring --limit-iface-in makes the routing work but it breaks
    rule matching (--dst-type LOCAL with limit-iface-in is supposed to only
    match if the dst address is configured on the incoming interface;
    without --limit-iface-in it will match if the address is reachable
    via lo).

    The test should call ipv6_chk_addr() instead. However, this would add
    a link-time dependency on ipv6.

    There are two possible solutions:

    1) Revert the commit that moved ipt_addrtype to xt_addrtype,
    and put ipv6 specific code into ip6t_addrtype.
    2) add new "nf_ipv6_ops" struct to register pointers to ipv6 functions.

    While the former might seem preferable, Pablo pointed out that there
    are more xt modules with link-time dependeny issues regarding ipv6,
    so lets go for 2).

    Signed-off-by: Florian Westphal
    Signed-off-by: Pablo Neira Ayuso

    Florian Westphal
     
  • When booting with DT, there's a crash when omapfb is probed. This is
    caused by the fact that omapdss+DT is not yet supported, and thus
    omapdss is not probed at all. On the other hand, omapfb is always
    probed. When omapfb tries to use omapdss, there's a NULL pointer
    dereference crash. The same error should most likely happen with omapdrm
    and omap_vout also.

    To fix this, add an "initialized" state to omapdss. When omapdss has
    been probed, it's marked as initialized. omapfb, omapdrm and omap_vout
    check this state when they are probed to see that omapdss is actually
    there.

    Signed-off-by: Tomi Valkeinen
    Tested-by: Peter Ujfalusi

    Tomi Valkeinen
     
  • Pull MIPS update from Ralf Baechle:
    - Fix a build error if is included without
    having been included before.
    - Cleanup and fix the damage done by the generic idle loop patch.
    - A kprobes fix that brings the MIPS code in line with what other
    architectures are for quite a while already.
    - Wire up the native getdents64(2) syscall for 64 bit - for some reason
    it was only for the compat ABIs. This has been reported to cause an
    application issue. This turned out bigger than I meant but the wait
    instruction support code was driving me nuts.

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MIPS: N64: Wire getdents64(2)
    kprobes/mips: Fix to check double free of insn slot
    MIPS: Idle: Break r4k_wait into two functions and fix it.
    MIPS: Idle: Do address fiddlery in helper functions.
    MIPS: Idle: Consolidate all declarations in .
    MIPS: Idle: Don't call local_irq_disable() in cpu_wait() implementations.
    MIPS: Idle: Re-enable irqs at the end of r3081, au1k and loongson2 cpu_wait.
    MIPS: Idle: Make call of function pointer readable.
    MIPS: Idle: Consistently reformat inline assembler.
    MIPS: Idle: cleaup SMTC idle hook as per Linux coding style.
    MIPS: Consolidate idle loop / WAIT instruction support in a single file.
    MIPS: clock.h: Remove declaration of cpu_wait.
    Add include dependencies to .
    MIPS: Rewrite pfn_valid to work in modules, too.

    Linus Torvalds
     
  • …l/git/pjw/omap-pending into fixes

    From Paul Walmsley:
    Fix the OMAP serial driver to work correctly on OMAP4 when booting
    with DT.

    * tag 'omap-fixes-a-for-3.10-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending:
    ARM: OMAP2+: hwmod: Remove sysc slave idle and auto idle apis
    SERIAL: OMAP: Remove the slave idle handling from the driver
    ARM: OMAP2+: serial: Remove the un-used slave idle hooks
    ARM: OMAP2+: hwmod-data: UART IP needs software control to manage sidle modes
    ARM: OMAP2+: hwmod: Add a new flag to handle SIDLE in SWSUP only in active
    ARM: OMAP2+: hwmod: Fix sidle programming in _enable_sysc()/_idle_sysc()

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson