1. 08 10月, 2014 4 次提交
    • T
      ipmi: Clear drvdata when interface is removed · 567eded9
      Takao Indoh 提交于
      This patch fixes a bug on hotmod removing.
      
      After ipmi interface is removed using hotmod, kernel panic occurs when
      rmmod impi_si.  For example, try this:
      
       # echo "remove,"`cat /proc/ipmi/0/params` > \
       /sys/module/ipmi_si/parameters/hotmod
       # rmmod ipmi_si
      
      Then, rmmod fails with the following messages.
      
        ------------[ cut here ]------------
        WARNING: CPU: 12 PID: 10819 at /mnt/repos/linux/lib/list_debug.c:53 __list_del_entry+0x63/0xd0()
        CPU: 12 PID: 10819 Comm: rmmod Not tainted 3.17.0-rc1 #19
        Hardware name: FUJITSU-SV PRIMERGY BX920 S2/D3030, BIOS 080015 Rev.3D81.3030 02/10/2012
        Call Trace:
          dump_stack+0x45/0x56
          warn_slowpath_common+0x7d/0xa0
          warn_slowpath_fmt+0x4c/0x50
          __list_del_entry+0x63/0xd0
          list_del+0xd/0x30
          cleanup_one_si+0x2a/0x230 [ipmi_si]
          ipmi_pnp_remove+0x15/0x20 [ipmi_si]
          pnp_device_remove+0x24/0x40
          __device_release_driver+0x7f/0xf0
          driver_detach+0xb0/0xc0
          bus_remove_driver+0x55/0xd0
          driver_unregister+0x2c/0x50
          pnp_unregister_driver+0x12/0x20
          cleanup_ipmi_si+0xbc/0xf0 [ipmi_si]
          SyS_delete_module+0x132/0x1c0
          system_call_fastpath+0x16/0x1b
        ---[ end trace 70b4377268f85c23 ]---
      
      list_del in cleanup_one_si() fails because the smi_info is already
      removed when hotmod removing.
      
      When ipmi interface is removed by hotmod, smi_info is removed by
      cleanup_one_si(), but is is still set in drvdata.  Therefore when rmmod
      ipmi_si, ipmi_pnp_remove tries to remove it again and fails.
      
      By this patch, a pointer to smi_info in drvdata is cleared when hotmod
      removing so that it will be not accessed when rmmod.
      
      changelog:
      v2:
      - Clear drvdata in cleanup_one_si
      - Change subject
      
      v1:
      https://lkml.org/lkml/2014/9/8/741Signed-off-by: NTakao Indoh <indou.takao@jp.fujitsu.com>
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      567eded9
    • A
      ipmi: work around gcc-4.9 build warning · cc4cbe90
      Arnd Bergmann 提交于
      Building ipmi on arm with gcc-4.9 results in this warning for an
      allmodconfig build:
      
        drivers/char/ipmi/ipmi_si_intf.c: In function 'ipmi_thread':
        include/linux/time.h:28:5: warning: 'busy_until.tv_sec' may be used uninitialized in this function [-Wmaybe-uninitialized]
          if (lhs->tv_sec > rhs->tv_sec)
             ^
        drivers/char/ipmi/ipmi_si_intf.c:1007:18: note: 'busy_until.tv_sec' was declared here
          struct timespec busy_until;
                          ^
      
      The warning is bogus and this case can not occur.  Apparently this is a
      false positive resulting from gcc getting a little smarter about
      tracking assignments but not smart enough.
      
      Marking the ipmi_thread_busy_wait function as inline gives the gcc
      optimization logic enough information to figure out for itself that the
      case cannot happen, which gets rid of the warning without adding any
      fake initialization.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cc4cbe90
    • B
      ipmi/of: Don't use unavailable interfaces · 08dc4169
      Benjamin Herrenschmidt 提交于
      If an IPMI controller is used by the firmware and as such marked with
      a reserved status, we shouldn't use it.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      08dc4169
    • C
      ipmi: Clean up the error handling for channel config errors · 1f668423
      Corey Minyard 提交于
      The code to send the channel config errors was missing an error report
      in one place and needed some more information in another, and had an
      extraneous bit of code.  Clean all that up.
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1f668423
  2. 06 10月, 2014 2 次提交
  3. 05 10月, 2014 1 次提交
  4. 04 10月, 2014 5 次提交
  5. 03 10月, 2014 23 次提交
  6. 02 10月, 2014 5 次提交
    • D
      Merge branch 'linux-3.17' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes · 19318c06
      Dave Airlie 提交于
      A few regression fixes, the runpm ones dating back to 3.15.  Also a fairly severe TMDS regression that effected a lot of GF8/9/GT2xx users.
      
      * 'linux-3.17' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
        drm/nouveau: make sure display hardware is reinitialised on runtime resume
        drm/nouveau: punt fbcon resume out to a workqueue
        drm/nouveau: fix regression on original nv50 board
        drm/nv50/disp: fix dpms regression on certain boards
      19318c06
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 50dddff3
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Don't halt the firmware in r8152 driver, from Hayes Wang.
      
       2) Handle full sized 802.1ad frames in bnx2 and tg3 drivers properly,
          from Vlad Yasevich.
      
       3) Don't sleep while holding tx_clean_lock in netxen driver, fix from
          Manish Chopra.
      
       4) Certain kinds of ipv6 routes can end up endlessly failing the route
          validation test, causing it to be re-looked up over and over again.
          This particularly kills input route caching in TCP sockets.  Fix
          from Hannes Frederic Sowa.
      
       5) netvsc_start_xmit() has a use-after-free access to skb->len, fix
          from K Y Srinivasan.
      
       6) Fix matching of inverted containers in ematch module, from Ignacy
          Gawędzki.
      
       7) Aggregation of GRO frames via SKB ->frag_list for linear skbs isn't
          handled properly, regression fix from Eric Dumazet.
      
       8) Don't test return value of ipv4_neigh_lookup(), which returns an
          error pointer, against NULL.  From WANG Cong.
      
       9) Fix an old regression where we mistakenly allow a double add of the
          same tunnel.  Fixes from Steffen Klassert.
      
      10) macvtap device delete and open can run in parallel and corrupt lists
          etc., fix from Vlad Yasevich.
      
      11) Fix build error with IPV6=m NETFILTER_XT_TARGET_TPROXY=y, from Pablo
          Neira Ayuso.
      
      12) rhashtable_destroy() triggers lockdep splats, fix also from Pablo.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (32 commits)
        bna: Update Maintainer Email
        r8152: disable power cut for RTL8153
        r8152: remove clearing bp
        bnx2: Correctly receive full sized 802.1ad fragmes
        tg3: Allow for recieve of full-size 8021AD frames
        r8152: fix setting RTL8152_UNPLUG
        netxen: Fix bug in Tx completion path.
        netxen: Fix BUG "sleeping function called from invalid context"
        ipv6: remove rt6i_genid
        hyperv: Fix a bug in netvsc_start_xmit()
        net: stmmac: fix stmmac_pci_probe failed when CONFIG_HAVE_CLK is selected
        ematch: Fix matching of inverted containers.
        gro: fix aggregation for skb using frag_list
        neigh: check error pointer instead of NULL for ipv4_neigh_lookup()
        ip6_gre: Return an error when adding an existing tunnel.
        ip6_vti: Return an error when adding an existing tunnel.
        ip6_tunnel: Return an error when adding an existing tunnel.
        ip6gre: add a rtnl link alias for ip6gretap
        net/mlx4_core: Allow not to specify probe_vf in SRIOV IB mode
        r8152: fix the carrier off when autoresuming
        ...
      50dddff3
    • N
      md/raid5: disable 'DISCARD' by default due to safety concerns. · 8e0e99ba
      NeilBrown 提交于
      It has come to my attention (thanks Martin) that 'discard_zeroes_data'
      is only a hint.  Some devices in some cases don't do what it
      says on the label.
      
      The use of DISCARD in RAID5 depends on reads from discarded regions
      being predictably zero.  If a write to a previously discarded region
      performs a read-modify-write cycle it assumes that the parity block
      was consistent with the data blocks.  If all were zero, this would
      be the case.  If some are and some aren't this would not be the case.
      This could lead to data corruption after a device failure when
      data needs to be reconstructed from the parity.
      
      As we cannot trust 'discard_zeroes_data', ignore it by default
      and so disallow DISCARD on all raid4/5/6 arrays.
      
      As many devices are trustworthy, and as there are benefits to using
      DISCARD, add a module parameter to over-ride this caution and cause
      DISCARD to work if discard_zeroes_data is set.
      
      If a site want to enable DISCARD on some arrays but not on others they
      should select DISCARD support at the filesystem level, and set the
      raid456 module parameter.
          raid456.devices_handle_discard_safely=Y
      
      As this is a data-safety issue, I believe this patch is suitable for
      -stable.
      DISCARD support for RAID456 was added in 3.7
      
      Cc: Shaohua Li <shli@kernel.org>
      Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
      Cc: Mike Snitzer <snitzer@redhat.com>
      Cc: Heinz Mauelshagen <heinzm@redhat.com>
      Cc: stable@vger.kernel.org (3.7+)
      Acked-by: NMartin K. Petersen <martin.petersen@oracle.com>
      Acked-by: NMike Snitzer <snitzer@redhat.com>
      Fixes: 620125f2Signed-off-by: NNeilBrown <neilb@suse.de>
      8e0e99ba
    • B
      drm/nouveau: make sure display hardware is reinitialised on runtime resume · 6fbb702e
      Ben Skeggs 提交于
      Linus commit 05c63c2f modified the
      runtime suspend/resume paths to skip over display-related tasks to
      avoid locking issues on resume.
      
      Unfortunately, this resulted in the display hardware being left in
      a partially initialised state, preventing subsequent modesets from
      completing.
      
      This commit unifies the (many) suspend/resume paths, bringing back
      display (and fbcon) handling in the runtime paths.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      6fbb702e
    • B
      drm/nouveau: punt fbcon resume out to a workqueue · 634ffccc
      Ben Skeggs 提交于
      Preparation for some runtime pm fixes.  Currently we skip over fbcon
      suspend/resume in the runtime path, which causes issues on resume if
      fbcon tries to write to the framebuffer before the BAR subdev has
      been resumed to restore the BAR1 VM setup.
      
      As we might be woken up via a sysfs connector, we are unable to call
      fb_set_suspend() in the resume path as it could make its way down to
      a modeset and cause all sorts of locking hilarity.
      
      To solve this, we'll just delay the fbcon resume to a workqueue.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      634ffccc