1. 22 2月, 2014 4 次提交
    • J
      sched/core: Make dl_b->lock IRQ safe · 49516342
      Juri Lelli 提交于
      Fix this lockdep warning:
      
      [   44.804600] =========================================================
      [   44.805746] [ INFO: possible irq lock inversion dependency detected ]
      [   44.805746] 3.14.0-rc2-test+ #14 Not tainted
      [   44.805746] ---------------------------------------------------------
      [   44.805746] bash/3674 just changed the state of lock:
      [   44.805746]  (&dl_b->lock){+.....}, at: [<ffffffff8106ad15>] sched_rt_handler+0x132/0x248
      [   44.805746] but this lock was taken by another, HARDIRQ-safe lock in the past:
      [   44.805746]  (&rq->lock){-.-.-.}
      
      and interrupts could create inverse lock ordering between them.
      
      [   44.805746]
      [   44.805746] other info that might help us debug this:
      [   44.805746]  Possible interrupt unsafe locking scenario:
      [   44.805746]
      [   44.805746]        CPU0                    CPU1
      [   44.805746]        ----                    ----
      [   44.805746]   lock(&dl_b->lock);
      [   44.805746]                                local_irq_disable();
      [   44.805746]                                lock(&rq->lock);
      [   44.805746]                                lock(&dl_b->lock);
      [   44.805746]   <Interrupt>
      [   44.805746]     lock(&rq->lock);
      
      by making dl_b->lock acquiring always IRQ safe.
      
      Cc: Ingo Molnar <mingo@redhat.com>
      Signed-off-by: NJuri Lelli <juri.lelli@gmail.com>
      Signed-off-by: NPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1392107067-19907-3-git-send-email-juri.lelli@gmail.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      49516342
    • J
      sched/core: Fix sched_rt_global_validate · e9e7cb38
      Juri Lelli 提交于
      Don't compare sysctl_sched_rt_runtime against sysctl_sched_rt_period if
      the former is equal to RUNTIME_INF, otherwise disabling -rt bandwidth
      management (with CONFIG_RT_GROUP_SCHED=n) fails.
      
      Cc: Ingo Molnar <mingo@redhat.com>
      Signed-off-by: NJuri Lelli <juri.lelli@gmail.com>
      Signed-off-by: NPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1392107067-19907-2-git-send-email-juri.lelli@gmail.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      e9e7cb38
    • S
      sched/deadline: Fix overflow to handle period==0 and deadline!=0 · 4df1638c
      Steven Rostedt 提交于
      While debugging the crash with the bad nr_running accounting, I hit
      another bug where, after running my sched deadline test, I was getting
      failures to take a CPU offline. It was giving me a -EBUSY error.
      
      Adding a bunch of trace_printk()s around, I found that the cpu
      notifier that called sched_cpu_inactive() was returning a failure. The
      overflow value was coming up negative?
      
      Talking this over with Juri, the problem is that the total_bw update was
      suppose to be made by dl_overflow() which, during my tests, seemed to
      not be called. Adding more trace_printk()s, it wasn't that it wasn't
      called, but it exited out right away with the check of new_bw being
      equal to p->dl.dl_bw. The new_bw calculates the ratio between period and
      runtime. The bug is that if you set a deadline, you do not need to set
      a period if you plan on the period being equal to the deadline. That
      is, if period is zero and deadline is not, then the system call should
      set the period to be equal to the deadline. This is done elsewhere in
      the code.
      
      The fix is easy, check if period is set, and if it is not, then use the
      deadline.
      
      Cc: Juri Lelli <juri.lelli@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20140219135335.7e74abd4@gandalf.local.homeSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      4df1638c
    • J
      sched/deadline: Fix bad accounting of nr_running · 3d5f35bd
      Juri Lelli 提交于
      Rostedt writes:
      
      My test suite was locking up hard when enabling mmiotracer. This was due
      to the mmiotracer placing all but one CPU offline. I found this out
      when I was able to reproduce the bug with just my stress-cpu-hotplug
      test. This bug baffled me because it would not always trigger, and
      would only trigger on the first run after boot up. The
      stress-cpu-hotplug test would crash hard the first run, or never crash
      at all. But a new reboot may cause it to crash on the first run again.
      
      I spent all week bisecting this, as I couldn't find a consistent
      reproducer. I finally narrowed it down to the sched deadline patches,
      and even more peculiar, to the commit that added the sched
      deadline boot up self test to the latency tracer. Then it dawned on me
      to what the bug was.
      
      All it took was to run a task under sched deadline to screw up the CPU
      hot plugging. This explained why it would lock up only on the first run
      of the stress-cpu-hotplug test. The bug happened when the boot up self
      test of the schedule latency tracer would test a deadline task. The
      deadline task would corrupt something that would cause CPU hotplug to
      fail. If it didn't corrupt it, the stress test would always work
      (there's no other sched deadline tasks that would run to cause
      problems). If it did corrupt on boot up, the first test would lockup
      hard.
      
      I proved this theory by running my deadline test program on another box,
      and then run the stress-cpu-hotplug test, and it would now consistently
      lock up. I could run stress-cpu-hotplug over and over with no problem,
      but once I ran the deadline test, the next run of the
      stress-cpu-hotplug would lock hard.
      
      After adding lots of tracing to the code, I found the cause. The
      function tracer showed that migrate_tasks() was stuck in an infinite
      loop, where rq->nr_running never equaled 1 to break out of it. When I
      added a trace_printk() to see what that number was, it was 335 and
      never decrementing!
      
      Looking at the deadline code I found:
      
      static void __dequeue_task_dl(struct rq *rq, struct task_struct *p, int flags) {
      	dequeue_dl_entity(&p->dl);
      	dequeue_pushable_dl_task(rq, p);
      }
      
      static void dequeue_task_dl(struct rq *rq, struct task_struct *p, int flags) {
      	update_curr_dl(rq);
      	__dequeue_task_dl(rq, p, flags);
      
      	dec_nr_running(rq);
      }
      
      And this:
      
      	if (dl_runtime_exceeded(rq, dl_se)) {
      		__dequeue_task_dl(rq, curr, 0);
      		if (likely(start_dl_timer(dl_se, curr->dl.dl_boosted)))
      			dl_se->dl_throttled = 1;
      		else
      			enqueue_task_dl(rq, curr, ENQUEUE_REPLENISH);
      
      		if (!is_leftmost(curr, &rq->dl))
      			resched_task(curr);
      	}
      
      Notice how we call __dequeue_task_dl() and in the else case we
      call enqueue_task_dl()? Also notice that dequeue_task_dl() has
      underscores where enqueue_task_dl() does not. The enqueue_task_dl()
      calls inc_nr_running(rq), but __dequeue_task_dl() does not. This is
      where we get nr_running out of sync.
      
      [snip]
      
      Another point where nr_running can get out of sync is when the dl_timer
      fires:
      
      	dl_se->dl_throttled = 0;
      	if (p->on_rq) {
      		enqueue_task_dl(rq, p, ENQUEUE_REPLENISH);
      		if (task_has_dl_policy(rq->curr))
      			check_preempt_curr_dl(rq, p, 0);
      		else
      			resched_task(rq->curr);
      
      This patch does two things:
      
       - correctly accounts for throttled tasks (that are now considered
         !running);
      
       - fixes the bug, updating nr_running from {inc,dec}_dl_tasks(),
         since we risk to update it twice in some situations (e.g., a
         task is dequeued while it has exceeded its budget).
      
      Cc: mingo@redhat.com
      Cc: torvalds@linux-foundation.org
      Cc: akpm@linux-foundation.org
      Reported-by: NSteven Rostedt <rostedt@goodmis.org>
      Reviewed-by: NSteven Rostedt <rostedt@goodmis.org>
      Tested-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NJuri Lelli <juri.lelli@gmail.com>
      Signed-off-by: NPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1392884379-13744-1-git-send-email-juri.lelli@gmail.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      3d5f35bd
  2. 21 2月, 2014 6 次提交
  3. 20 2月, 2014 2 次提交
    • L
      Merge tag 'nfs-for-3.14-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · e95003c3
      Linus Torvalds 提交于
      Pull NFS client bugfixes from Trond Myklebust:
       "Highlights include stable fixes for the following bugs:
      
         - General performance regression due to NFS_INO_INVALID_LABEL being
           set when the server doesn't support labeled NFS
         - Hang in the RPC code due to a socket out-of-buffer race
         - Infinite loop when trying to establish the NFSv4 lease
         - Use-after-free bug in the RPCSEC gss code.
         - nfs4_select_rw_stateid is returning with a non-zero error value on
           success
      
        Other bug fixes:
      
        - Potential memory scribble in the RPC bi-directional RPC code
        - Pipe version reference leak
        - Use the correct net namespace in the new NFSv4 migration code"
      
      * tag 'nfs-for-3.14-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        NFS fix error return in nfs4_select_rw_stateid
        NFSv4: Use the correct net namespace in nfs4_update_server
        SUNRPC: Fix a pipe_version reference leak
        SUNRPC: Ensure that gss_auth isn't freed before its upcall messages
        SUNRPC: Fix potential memory scribble in xprt_free_bc_request()
        SUNRPC: Fix races in xs_nospace()
        SUNRPC: Don't create a gss auth cache unless rpc.gssd is running
        NFS: Do not set NFS_INO_INVALID_LABEL unless server supports labeled NFS
      e95003c3
    • L
      Merge tag 'mfd-fixes-3.14-1' of git://git.linaro.org/people/lee.jones/mfd · 981adacd
      Linus Torvalds 提交于
      Pull MFD fixes from Lee Jones:
       "Couple of small issues solved:
         - Suspend/Resume call-backs require CONFIG_PM_SLEEP
         - Some drivers written for 32bit architectures fail when compiled
           with a 64bit compiler.  The fixes will future proof the drivers"
      
      * tag 'mfd-fixes-3.14-1' of git://git.linaro.org/people/lee.jones/mfd:
        mfd: sec-core: sec_pmic_{suspend,resume}() should depend on CONFIG_PM_SLEEP
        mfd: max14577: max14577_{suspend,resume}() should depend on CONFIG_PM_SLEEP
        mfd: tps65217: Naturalise cross-architecture discrepancies
        mfd: wm8994-core: Naturalise cross-architecture discrepancies
        mfd: max8998: Naturalise cross-architecture discrepancies
        mfd: max8997: Naturalise cross-architecture discrepancies
      981adacd
  4. 19 2月, 2014 28 次提交
    • A
      NFS fix error return in nfs4_select_rw_stateid · 146d70ca
      Andy Adamson 提交于
      Do not return an error when nfs4_copy_delegation_stateid succeeds.
      Signed-off-by: NAndy Adamson <andros@netapp.com>
      Link: http://lkml.kernel.org/r/1392737765-41942-1-git-send-email-andros@netapp.com
      Fixes: ef1820f9 (NFSv4: Don't try to recover NFSv4 locks when...)
      Cc: NeilBrown <neilb@suse.de>
      Cc: stable@vger.kernel.org # 3.12+
      Signed-off-by: NTrond Myklebust <trond.myklebust@primarydata.com>
      146d70ca
    • G
      mfd: sec-core: sec_pmic_{suspend,resume}() should depend on CONFIG_PM_SLEEP · 8321bbf8
      Geert Uytterhoeven 提交于
      If CONFIG_PM_SLEEP=n:
      
      drivers/mfd/sec-core.c:349: warning: ‘sec_pmic_suspend’ defined but not used
      drivers/mfd/sec-core.c:371: warning: ‘sec_pmic_resume’ defined but not used
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      8321bbf8
    • G
      mfd: max14577: max14577_{suspend,resume}() should depend on CONFIG_PM_SLEEP · 3edeb1e4
      Geert Uytterhoeven 提交于
      If CONFIG_PM_SLEEP=n:
      
      drivers/mfd/max14577.c:177: warning: ‘max14577_suspend’ defined but not used
      drivers/mfd/max14577.c:200: warning: ‘max14577_resume’ defined but not used
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      3edeb1e4
    • L
      mfd: tps65217: Naturalise cross-architecture discrepancies · 5c6fbd56
      Lee Jones 提交于
      If we compile the TPS65217 for a 64bit architecture we receive the following
      warnings:
      
      drivers/mfd/tps65217.c: In function ‘tps65217_probe’:
      drivers/mfd/tps65217.c:173:13:
        warning: cast from pointer to integer of different size
         chip_id = (unsigned int)match->data;
                   ^
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      5c6fbd56
    • L
      mfd: wm8994-core: Naturalise cross-architecture discrepancies · 7f8279ce
      Lee Jones 提交于
      If we compile the WM8994 for a 64bit architecture we receive the following
      warnings:
      
      drivers/mfd/wm8994-core.c: In function ‘wm8994_i2c_probe’:
      drivers/mfd/wm8994-core.c:639:19:
        warning: cast from pointer to integer of different size
          wm8994->type = (int)of_id->data;
                         ^
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      7f8279ce
    • L
      mfd: max8998: Naturalise cross-architecture discrepancies · 8bace2d5
      Lee Jones 提交于
      If we compile the MAX8998 for a 64bit architecture we receive the following
      warnings:
      
        drivers/mfd/max8998.c: In function ‘max8998_i2c_get_driver_data’:
        drivers/mfd/max8998.c:178:10:
          warning: cast from pointer to integer of different size
           return (int)match->data;
                  ^
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      8bace2d5
    • L
      mfd: max8997: Naturalise cross-architecture discrepancies · 05fb7a56
      Lee Jones 提交于
      If we compile the MAX8997 for a 64bit architecture we receive the following
      warnings:
      
        drivers/mfd/max8997.c: In function ‘max8997_i2c_get_driver_data’:
        drivers/mfd/max8997.c:173:10:
          warning: cast from pointer to integer of different size
           return (int)match->data;
                  ^
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      05fb7a56
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 960dfc4e
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "Lots of little small things, nothing too major: nouveau regression
        fixes, vmware fixes for the new hw support, memory leaks in error path
        fixes"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (31 commits)
        drm/radeon/ni: fix typo in dpm sq ramping setup
        drm/radeon/si: fix typo in dpm sq ramping setup
        drm/radeon: fix CP semaphores on CIK
        drm/radeon: delete a stray tab
        drm/radeon: fix display tiling setup on SI
        drm/radeon/dpm: reduce r7xx vblank mclk threshold to 200
        drm/radeon: fill in DRM_CAPs for cursor size
        drm: add DRM_CAPs for cursor size
        drm/radeon: unify bpc handling
        drm/ttm: Fix memory leak in ttm_agp_backend.c
        drm/ttm: declare 'struct device' in ttm_page_alloc.h
        drm/nouveau: fix TTM_PL_TT memtype on pre-nv50
        drm/nv50/disp: use correct register to determine DP display bpp
        drm/nouveau/fb: use correct ram oclass for nv1a hardware
        drm/nv50/gr: add missing nv_error parameter priv
        drm/nouveau: fix ENG_RUNLIST register address
        drm/nv4c/bios: disallow retrieving from prom on nv4x igp's
        drm/nv4c/vga: decode register is in a different place on nv4x igp's
        drm/nv4c/mc: nv4x igp's have a different msi rearm register
        drm/nouveau: set irq_enabled manually
        ...
      960dfc4e
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 525b8709
      Linus Torvalds 提交于
      Pull HID update from Jiri Kosina:
      
       - fixes for several bugs in incorrect allocations of buffers by David
         Herrmann and Benjamin Tissoires.
      
       - support for a few new device IDs by Archana Patni, Benjamin
         Tissoires, Huei-Horng Yo, Reyad Attiyat and Yufeng Shen
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: hyperv: make sure input buffer is big enough
        HID: Bluetooth: hidp: make sure input buffers are big enough
        HID: hid-sensor-hub: quirk for STM Sensor hub
        HID: apple: add Apple wireless keyboard 2011 JIS model support
        HID: fix buffer allocations
        HID: multitouch: add FocalTech FTxxxx support
        HID: microsoft: Add ID's for Surface Type/Touch Cover 2
        HID: usbhid: quirk for CY-TM75 75 inch Touch Overlay
      525b8709
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · b0d3f6d4
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) kvaser CAN driver has fixed limits of some of it's table, validate
          that we won't exceed those limits at probe time.  Fix from Olivier
          Sobrie.
      
       2) Fix rtl8192ce disabling interrupts for too long, from Olivier
          Langlois.
      
       3) Fix botched shift in ath5k driver, from Dan Carpenter.
      
       4) Fix corruption of deferred packets in TIPC, from Erik Hugne.
      
       5) Fix newlink error path in macvlan driver, from Cong Wang.
      
       6) Fix netpoll deadlock in bonding, from Ding Tianhong.
      
       7) Handle GSO packets properly in forwarding path when fragmentation is
          necessary on egress, from Florian Westphal.
      
       8) Fix axienet build errors, from Michal Simek.
      
       9) Fix refcounting of ubufs on tx in vhost net driver, from Michael S
          Tsirkin.
      
      10) Carrier status isn't set properly in hyperv driver, from Haiyang
          Zhang.
      
      11) Missing pci_disable_device() in tulip_remove_one), from Ingo Molnar.
      
      12) AF_PACKET qdisc bypass mode doesn't adhere to driver provided TX
          queue selection method.  Add a fallback method mechanism to fix this
          bug, from Daniel Borkmann.
      
      13) Fix regression in link local route handling on GRE tunnels, from
          Nicolas Dichtel.
      
      14) Bonding can assign dup aggregator IDs in some sequences of
          configuration, fix by making the allocation counter per-bond instead
          of global.  From Jiri Bohac.
      
      15) sctp_connectx() needs compat translations, from Daniel Borkmann.
      
      16) Fix of_mdio PHY interrupt parsing, from Ben Dooks
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (62 commits)
        MAINTAINERS: add entry for the PHY library
        of_mdio: fix phy interrupt passing
        net: ethernet: update dependency and help text of mvneta
        NET: fec: only enable napi if we are successful
        af_packet: remove a stray tab in packet_set_ring()
        net: sctp: fix sctp_connectx abi for ia32 emulation/compat mode
        ipv4: fix counter in_slow_tot
        irtty-sir.c: Do not set_termios() on irtty_close()
        bonding: 802.3ad: make aggregator_identifier bond-private
        usbnet: remove generic hard_header_len check
        gre: add link local route when local addr is any
        batman-adv: fix potential kernel paging error for unicast transmissions
        batman-adv: avoid double free when orig_node initialization fails
        batman-adv: free skb on TVLV parsing success
        batman-adv: fix TT CRC computation by ensuring byte order
        batman-adv: fix potential orig_node reference leak
        batman-adv: avoid potential race condition when adding a new neighbour
        batman-adv: properly check pskb_may_pull return value
        batman-adv: release vlan object after checking the CRC
        batman-adv: fix TT-TVLV parsing on OGM reception
        ...
      b0d3f6d4
    • L
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · 91c6c8dc
      Linus Torvalds 提交于
      Pull ARM fixes from Russell King:
       "A range of ARM fixes.  Biggest change is the stage-2 attributes used
        for for hyp mode which were wrong.  I've killed some bits in a couple
        of DT files which turned out not to be required, and a few other
        fixes.
      
        One fix touches code outside of arch/arm, which is related to sorting
        out the DMA masks correctly.  There is a long standing issue with the
        conversion from PFNs to addresses where people assume that shifting an
        unsigned long left by PAGE_SHIFT results in a correct address.  This
        is not the case with C: the integer promotion happens at assignment
        after evaluation.  This fixes the recently introduced dma_max_pfn()
        function, but there's a number of other places where we try this
        directly on an unsigned long in the mm code"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: 7957/1: add DSB after icache flush in __flush_icache_all()
        Fix uses of dma_max_pfn() when converting to a limiting address
        ARM: 7955/1: spinlock: ensure we have a compiler barrier before sev
        ARM: 7953/1: mm: ensure TLB invalidation is complete before enabling MMU
        ARM: 7952/1: mm: Fix the memblock allocation for LPAE machines
        ARM: 7950/1: mm: Fix stage-2 device memory attributes
        ARM: dts: fix spdif pinmux configuration
      91c6c8dc
    • L
      Merge tag 'jfs-3.14-rc4' of git://github.com/kleikamp/linux-shaggy · 341bbdc5
      Linus Torvalds 提交于
      Pull jfs fix from David Kleikamp:
       "Another ACL regression. This one more subtle"
      
      * tag 'jfs-3.14-rc4' of git://github.com/kleikamp/linux-shaggy:
        jfs: set i_ctime when setting ACL
      341bbdc5
    • T
      cgroup: update cgroup_enable_task_cg_lists() to grab siglock · 532de3fc
      Tejun Heo 提交于
      Currently, there's nothing preventing cgroup_enable_task_cg_lists()
      from missing set PF_EXITING and race against cgroup_exit().  Depending
      on the timing, cgroup_exit() may finish with the task still linked on
      css_set leading to list corruption.  Fix it by grabbing siglock in
      cgroup_enable_task_cg_lists() so that PF_EXITING is guaranteed to be
      visible.
      
      This whole on-demand cg_list optimization is extremely fragile and has
      ample possibility to lead to bugs which can cause things like
      once-a-year oops during boot.  I'm wondering whether the better
      approach would be just adding "cgroup_disable=all" handling which
      disables the whole cgroup rather than tempting fate with this
      on-demand craziness.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: NLi Zefan <lizefan@huawei.com>
      Cc: stable@vger.kernel.org
      532de3fc
    • F
      MAINTAINERS: add entry for the PHY library · 22f08ad9
      Florian Fainelli 提交于
      The PHY library has been subject to some changes, new drivers and DT
      interactions over the past few months. Add myself as a maintainer for
      the core PHY library parts and drivers. Make sure the PHY library entry
      also covers the Device Tree files which have a close interaction with
      the MDIO bus, PHY connection and Ethernet PHY mode parsing.
      
      CC: Grant Likely <grant.likely@linaro.org>
      CC: Shaohui Xie <shaohui.xie@freescale.com>
      CC: Andy Fleming <afleming@gmail.com>
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      22f08ad9
    • B
      of_mdio: fix phy interrupt passing · f15c586d
      Ben Dooks 提交于
      The of_mdiobus_register_phy() is not setting phy->irq thus causing
      some drivers to incorrectly assume that the PHY does not have an
      IRQ associated with it. Not only do some drivers report no IRQ
      they do not install an interrupt handler for the PHY.
      
      Simplify the code setting irq and set the phy->irq at the same
      time so that we cover the following issues, which should cover
      all the cases the code will find:
      
      - Set phy->irq if node has irq property and mdio->irq is NULL
      - Set phy->irq if node has no irq and mdio->irq is not NULL
      - Leave phy->irq as PHY_POLL default if none of the above
      
      This fixes the issue:
       net eth0: attached PHY 1 (IRQ -1) to driver Micrel KSZ8041RNLI
      
      to the correct:
       net eth0: attached PHY 1 (IRQ 416) to driver Micrel KSZ8041RNLI
      Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f15c586d
    • T
      net: ethernet: update dependency and help text of mvneta · 4b636b53
      Thomas Petazzoni 提交于
      With the introduction of the support for Armada 375 and Armada 38x,
      the hidden Kconfig option MACH_ARMADA_370_XP is being renamed to
      MACH_MVEBU_V7. Therefore, the dependency that was used for the mvneta
      driver can no longer work. This commit replaces this dependency by a
      dependency on PLAT_ORION, which is used similarly for the mv643xx_eth
      driver.
      
      In addition to this, it takes this opportunity to adjust the
      description and help text to indicate that the driver can is also used
      for Armada 38x. Note that Armada 375 cannot use this driver as it has
      a completely different networking unit, which will require a separate
      driver.
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Acked-by: NJason Cooper <jason@lakedaemon.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4b636b53
    • R
      NET: fec: only enable napi if we are successful · ce5eaf02
      Russell King 提交于
      If napi is left enabled after a failed attempt to bring the interface
      up, we BUG:
      
      fec 2188000.ethernet eth0: no PHY, assuming direct connection to switch
      libphy: PHY fixed-0:00 not found
      fec 2188000.ethernet eth0: could not attach to PHY
      ------------[ cut here ]------------
      kernel BUG at include/linux/netdevice.h:502!
      Internal error: Oops - BUG: 0 [#1] SMP ARM
      ...
      PC is at fec_enet_open+0x4d0/0x500
      LR is at __dev_open+0xa4/0xfc
      
      Only enable napi after we are past all the failure paths.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ce5eaf02
    • D
      af_packet: remove a stray tab in packet_set_ring() · d7cf0c34
      Dan Carpenter 提交于
      At first glance it looks like there is a missing curly brace but
      actually the code works the same either way.  I have adjusted the
      indenting but left the code the same.
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: NDaniel Borkmann <dborkman@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d7cf0c34
    • D
      Merge tag 'ttm-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux into drm-fixes · 75936c65
      Dave Airlie 提交于
      Pull request of 2014-02-18
      
      One compile fix and one memory leak.
      
      * tag 'ttm-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux:
        drm/ttm: Fix memory leak in ttm_agp_backend.c
        drm/ttm: declare 'struct device' in ttm_page_alloc.h
      75936c65
    • D
      Merge tag 'vmwgfx-fixes-3.14-2014-02-18' of... · 9830e44f
      Dave Airlie 提交于
      Merge tag 'vmwgfx-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux into drm-fixes
      
      Pull request of 2014-02-18.
      
      Nothing special. The biggest change is adding a couple of command defines and
      packing the command data correctly.
      
      * tag 'vmwgfx-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux:
        drm/vmwgfx: Fix command defines and checks
        drm/vmwgfx: Fix possible integer overflow
        drm/vmwgfx: Remove stray const
        drm/vmwgfx: unlock on error path in vmw_execbuf_process()
        drm/vmwgfx: Get maximum mob size from register SVGA_REG_MOB_MAX_SIZE
        drm/vmwgfx: Fix a couple of sparse warnings and errors
      9830e44f
    • D
      Merge branch 'drm-fixes-3.14' of git://people.freedesktop.org/~agd5f/linux into drm-fixes · 560591f1
      Dave Airlie 提交于
      Fix for 128x128 cursors, along with some misc fixes.
      
      * 'drm-fixes-3.14' of git://people.freedesktop.org/~agd5f/linux:
        drm/radeon/ni: fix typo in dpm sq ramping setup
        drm/radeon/si: fix typo in dpm sq ramping setup
        drm/radeon: fix CP semaphores on CIK
        drm/radeon: delete a stray tab
        drm/radeon: fix display tiling setup on SI
        drm/radeon/dpm: reduce r7xx vblank mclk threshold to 200
        drm/radeon: fill in DRM_CAPs for cursor size
        drm: add DRM_CAPs for cursor size
        drm/radeon: unify bpc handling
      560591f1
    • D
      Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless · d3ec67c0
      David S. Miller 提交于
      John W. Linville says:
      
      ====================
      Please pull this batch of fixes intended for the 3.14 stream...
      
      For the iwlwifi one, Emmanuel says:
      
      "As explicitly written in the commit message, we prefer to disable Tx
      AMPDU on NICs supported by iwldvm. This feature gives a big boost in
      Tx performance, but the firmware is buggy and we can't rely on it.
      Our hope is that most of the users out there want wifi to surf on
      the web which means that they care more for Rx traffic than for Tx.
      People who want to enable it can do so with the help of a module
      parameter."
      
      On top of that...
      
      Dan Carpenter fixes a typo/thinko in ath5k.
      
      Olivier Langlois fixes a couple of rtlwifi issues, one which leaves
      IRQs disabled too long (causing a variety of problems elsewhere),
      and one which fixes an incorrect return code when failing to enable
      the NIC.
      
      Russell King fixes a NULL pointer dereference in hostap.
      
      Stanislaw Gruszka fixes a DMA coherence issue in the rtl8187 driver.
      
      Please let me know if there are problems!
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d3ec67c0
    • L
      workqueue: ensure @task is valid across kthread_stop() · 5bdfff96
      Lai Jiangshan 提交于
      When a kworker should die, the kworkre is notified through WORKER_DIE
      flag instead of kthread_should_stop().  This, IIRC, is primarily to
      keep the test synchronized inside worker_pool lock.  WORKER_DIE is
      first set while holding pool->lock, the lock is dropped and
      kthread_stop() is called.
      
      Unfortunately, this means that there's a slight chance that the target
      kworker may see WORKER_DIE before kthread_stop() finishes and exits
      and frees the target task before or during kthread_stop().
      
      Fix it by pinning the target task before setting WORKER_DIE and
      putting it after kthread_stop() is done.
      
      tj: Improved patch description and comment.  Moved pinning above
          WORKER_DIE for better signify what it's protecting.
      
      CC: stable@vger.kernel.org
      Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      5bdfff96
    • D
      net: sctp: fix sctp_connectx abi for ia32 emulation/compat mode · ffd59393
      Daniel Borkmann 提交于
      SCTP's sctp_connectx() abi breaks for 64bit kernels compiled with 32bit
      emulation (e.g. ia32 emulation or x86_x32). Due to internal usage of
      'struct sctp_getaddrs_old' which includes a struct sockaddr pointer,
      sizeof(param) check will always fail in kernel as the structure in
      64bit kernel space is 4bytes larger than for user binaries compiled
      in 32bit mode. Thus, applications making use of sctp_connectx() won't
      be able to run under such circumstances.
      
      Introduce a compat interface in the kernel to deal with such
      situations by using a 'struct compat_sctp_getaddrs_old' structure
      where user data is copied into it, and then sucessively transformed
      into a 'struct sctp_getaddrs_old' structure with the help of
      compat_ptr(). That fixes sctp_connectx() abi without any changes
      needed in user space, and lets the SCTP test suite pass when compiled
      in 32bit and run on 64bit kernels.
      
      Fixes: f9c67811 ("sctp: Fix regression introduced by new sctp_connectx api")
      Signed-off-by: NDaniel Borkmann <dborkman@redhat.com>
      Acked-by: NNeil Horman <nhorman@tuxdriver.com>
      Acked-by: NVlad Yasevich <vyasevich@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ffd59393
    • D
      Merge tag 'batman-adv-fix-for-davem' of git://git.open-mesh.org/linux-merge · 7ffb0d31
      David S. Miller 提交于
      Included changes:
      - fix soft-interface MTU computation
      - fix bogus pointer mangling when parsing the TT-TVLV
        container. This bug led to a wrong memory access.
      - fix memory leak by properly releasing the VLAN object
        after CRC check
      - properly check pskb_may_pull() return value
      - avoid potential race condition while adding new neighbour
      - fix potential memory leak by removing all the references
        to the orig_node object in case of initialization failure
      - fix the TT CRC computation by ensuring that every node uses
        the same byte order when hosts with different endianess are
        part of the same network
      - fix severe memory leak by freeing skb after a successful
        TVLV parsing
      - avoid potential double free when orig_node initialization
        fails
      - fix potential kernel paging error caused by the usage of
        the old value of skb->data after skb reallocation
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7ffb0d31
    • A
      drm/radeon/ni: fix typo in dpm sq ramping setup · 21ed4947
      Alex Deucher 提交于
      inverted logic.
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      21ed4947
    • A
      drm/radeon/si: fix typo in dpm sq ramping setup · 5b43c3cd
      Alex Deucher 提交于
      inverted logic.
      Noticed-by: NSylvain BERTRAND <sylware@legeek.net>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      5b43c3cd
    • C
      drm/radeon: fix CP semaphores on CIK · 8f53492f
      Christian König 提交于
      The CP semaphore queue on CIK has a bug that triggers if uncompleted
      waits use the same address while a signal is still pending. Work around
      this by using different addresses for each sync.
      Signed-off-by: NChristian König <christian.koenig@amd.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      8f53492f