1. 24 9月, 2012 29 次提交
    • S
      GFS2: Improve block reservation tracing · 9e733d39
      Steven Whitehouse 提交于
      This patch improves the tracing of block reservations by
      removing some corner cases and also providing more useful
      detail in the traces.
      
      A new field is added to the reservation structure to contain
      the inode number. This is used since in certain contexts it is
      not possible to access the inode itself to obtain this information.
      As a result we can then display the inode number for all tracepoints
      and also in case we dump the resource group.
      
      The "del" tracepoint operation has been removed. This could be called
      with the reservation rgrp set to NULL. That resulted in not printing
      the device number, and thus making the information largely useless
      anyway. Also, the conditional on the rgrp being NULL can then be
      removed from the tracepoint. After this change, all the block
      reservation tracepoint calls will be called with the rgrp information.
      
      The existing ins,clm and tdel calls to the block reservation tracepoint
      are sufficient to track the entire life of the block reservation.
      
      In gfs2_block_alloc() the error detection is updated to print out
      the inode number of the problematic inode. This can then be compared
      against the information in the glock dump,tracepoints, etc.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      9e733d39
    • S
      GFS2: Fall back to ignoring reservations, if there are no other blocks left · 137834a6
      Steven Whitehouse 提交于
      When we get to the stage of allocating blocks, we know that the
      resource group in question must contain enough free blocks, otherwise
      gfs2_inplace_reserve() would have failed. So if we are left with only
      free blocks which are reserved, then we must use those. This can happen
      if another node has sneeked in and use some blocks reserved on this
      node, for example. Generally this will happen very rarely and only
      when the resouce group is nearly full.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      137834a6
    • S
      GFS2: Fix ->show_options() for statfs slow · 2b9731e8
      Steven Whitehouse 提交于
      The ->show_options() function for GFS2 was not correctly displaying
      the value when statfs slow in in use.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      Reported-by: NMilos Jakubicek <xjakub@fi.muni.cz>
      2b9731e8
    • S
      GFS2: Use rbm for gfs2_setbit() · 3e6339dd
      Steven Whitehouse 提交于
      Use the rbm structure for gfs2_setbit() in order to simplify the
      arguments to the function. We have to add a bool to control whether
      the clone bitmap should be updated (if it exists) but otherwise it
      is a more or less direct substitution.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      3e6339dd
    • S
      GFS2: Use rbm for gfs2_testbit() · c04a2ef3
      Steven Whitehouse 提交于
      Change the arguments to gfs2_testbit() so that it now just takes an
      rbm specifying the position of the two bit entry to return.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      c04a2ef3
    • B
      GFS2: Eliminate unnecessary check for state > 3 in bitfit · 29c05b20
      Bob Peterson 提交于
      Function gfs2_bitfit was checking for state > 3, but that's
      impossible since it is only called from rgblk_search, which receives
      only GFS2_BLKST_ constants.
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      29c05b20
    • B
      GFS2: Eliminate redundant calls to may_grant · e5dc76b9
      Bob Peterson 提交于
      Function add_to_queue was checking may_grant for the passed-in
      holder for every iteration of its gh2 loop. Now it only checks it
      once at the beginning to see if a try lock is futile.
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      e5dc76b9
    • B
      GFS2: Combine functions gfs2_glock_dq_wait and wait_on_demote · 81e1d450
      Bob Peterson 提交于
      Function gfs2_glock_dq_wait called two-line function wait_on_demote,
      so they were combined.
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      81e1d450
    • B
      GFS2: Combine functions gfs2_glock_wait and wait_on_holder · 07a79049
      Bob Peterson 提交于
      Function gfs2_glock_wait only called function wait_on_holder and
      returned its return code, so they were combined for readability.
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      07a79049
    • B
      GFS2: inline __gfs2_glock_schedule_for_reclaim · 4abb6ad9
      Bob Peterson 提交于
      Since function gfs2_glock_schedule_for_reclaim is only two
      significant lines, we can eliminate it, simplifying the code
      and making it more readable.
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      4abb6ad9
    • B
      GFS2: change function gfs2_direct_IO to use a normal gfs2_glock_dq · 8e711e10
      Bob Peterson 提交于
      This patch changes function gfs2_direct_IO so that it uses a normal
      call to gfs2_glock_dq rather than a call to a multiple-dq of one item.
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      8e711e10
    • B
      GFS2: rbm code cleanup · 8d8b752a
      Bob Peterson 提交于
      This patch fixes a few small rbm related things. First, it fixes
      a corner case where the rbm needs to switch bitmaps and wasn't
      adjusting its buffer pointer. Second, there's a white space issue
      fixed. Third, the logic in function gfs2_rbm_from_block was optimized
      a bit. Lastly, a check for goal block overflows was added to function
      gfs2_alloc_blocks.
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      8d8b752a
    • S
      GFS2: Fix case where reservation finished at end of rgrp · 5d50d532
      Steven Whitehouse 提交于
      One corner case which the original patch failed to take into
      account was when there is a reservation which ended such that
      the following block was one beyond the end of the rgrp in
      question. This extra test fixes that case.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      Reported-by: NBob Peterson <rpeterso@redhat.com>
      Tested-by: NBob Peterson <rpeterso@redhat.com>
      5d50d532
    • M
      GFS2: Use RB_CLEAR_NODE() rather than rb_init_node() · 24d634e8
      Michel Lespinasse 提交于
      gfs2 calls RB_EMPTY_NODE() to check if nodes are not on an rbtree.
      The corresponding initialization function is RB_CLEAR_NODE().
      rb_init_node() was never clearly defined and is going away.
      Signed-off-by: NMichel Lespinasse <walken@google.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      24d634e8
    • S
      GFS2: Update rgblk_free() to use rbm · 3b1d0b9d
      Steven Whitehouse 提交于
      Replace open coded version with a call to gfs2_rbm_from_block()
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      3b1d0b9d
    • S
      GFS2: Update gfs2_get_block_type() to use rbm · 3983903a
      Steven Whitehouse 提交于
      Use the new gfs2_rbm_from_block() function to replace an open
      coded version of the same code.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      3983903a
    • S
      GFS2: Replace rgblk_search with gfs2_rbm_find · 5b924ae2
      Steven Whitehouse 提交于
      This is part of a series of patches which are introducing the
      gfs2_rbm structure throughout the block allocation code. The
      main aim of this part is to create a search function which can
      deal directly with struct gfs2_rbm. In this case it specifies
      the initial position at which to start the search and also the
      point at which the search terminates.
      
      The net result of this is to clean up the search code and make
      it rather more readable, and the various possible exceptions which
      may occur during the search are partitioned into their own functions.
      
      There are some bug fixes too. We should not be checking the reservations
      while allocating extents - the time for that is when we are searching
      for where to put the extent, not when we've already made that decision.
      
      Also, rgblk_search had two uses, and in only one of those cases did
      it make sense to check for reservations. This is fixed in the new
      gfs2_rbm_find function, which has a cleaner interface.
      
      The reservation checking has been improved by always checking for
      contiguous reservations, and returning the first free block after
      all contiguous reservations. This is done under the spin lock to
      ensure consistancy of the tree.
      
      The allocation of extents is now in all cases done by the existing
      allocation code, and if there is an active reservation, that is updated
      after the fact. Again this is done under the spin lock, since it entails
      changing the lookup key for the reservation in question.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      5b924ae2
    • S
      GFS2: Add structure to contain rgrp, bitmap, offset tuple · 4a993fb1
      Steven Whitehouse 提交于
      This patch introduces a new structure, gfs2_rbm, which is a
      tuple of a resource group, a bitmap within the resource group
      and an offset within that bitmap. This is designed to make
      manipulating these sets of variables easier. There is also a
      new helper function which converts this representation back
      to a disk block address.
      
      In addition, the rbtree nodes which are used for the reservations
      were not being correctly initialised, which is now fixed. Also,
      the tracing was not passing through the inode where it should
      have been. That is mostly fixed aside from one corner case. This
      needs to be revisited since there can also be a NULL rgrp in
      some cases which results in the device being incorrect in the
      trace.
      
      This is intended to be the first step towards cleaning up some
      of the allocation code, and some further bug fixes.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      4a993fb1
    • S
      GFS2: Remove rs_requested field from reservations · 71f890f7
      Steven Whitehouse 提交于
      The rs_requested field is left over from the original allocation
      code, however this should have been a parameter passed to the
      various functions from gfs2_inplace_reserve() and not a member of the
      reservation structure as the value is not required after the
      initial allocation.
      
      This also helps simplify the code since we no longer need to set
      the rs_requested to zero. Also the gfs2_inplace_release()
      function can also be simplified since the reservation structure
      will always be defined when it is called, and the only remaining
      task is to unlock the rgrp if required. It can also now be
      called unconditionally too, resulting in a further simplification.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      71f890f7
    • S
      GFS2: Merge two nearly identical xattr functions · 1f981697
      Steven Whitehouse 提交于
      There were two functions in the xattr code which were nearly
      identical, the only difference being that one was copy data into
      the unstuffed xattrs and the other was copying data out from it.
      
      This patch merges the two functions such that the code which deal
      with iteration over the unstuffed xattrs is no longer duplicated.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      1f981697
    • L
      Linux 3.6-rc7 · 979570e0
      Linus Torvalds 提交于
      979570e0
    • L
      Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 56bae802
      Linus Torvalds 提交于
      Pull kbuild fixes from Michal Marek:
       "There are two more kbuild fixes for 3.6.
      
        One fixes a race between x86's archscripts target and the rule
        (re)building scripts/basic/fixdep.  The second is a fix for the
        previous attempt at fixing make firmware_install with make 3.82.
        This new solution should work with any version of GNU make"
      
      * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        x86/kbuild: archscripts depends on scripts_basic
        firmware: fix directory creation rule matching with make 3.80
      56bae802
    • L
      Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging · 0737c8d7
      Linus Torvalds 提交于
      Pull hwmon subsystem fixes from Jean Delvare.
      
      * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
        hwmon: (fam15h_power) Tweak runavg_range on resume
        hwmon: (coretemp) Use get_online_cpus to avoid races involving CPU hotplug
        hwmon: (via-cputemp) Use get_online_cpus to avoid races involving CPU hotplug
      0737c8d7
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 0bf7a705
      Linus Torvalds 提交于
      Pull SCSI fixes from James Bottomley:
       "This is a set of four essential fixes: two oops related (bnx2i,
        virtio-scsi), one data corruption related (hpsa) and one failure to
        boot due to interrupt routing issues (mpt2ss).
      
        Signed-off-by: James Bottomley <JBottomley@Parallels.com>"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        [SCSI] hpsa: fix handling of protocol error
        [SCSI] mpt2sas: Fix for issue - Unable to boot from the drive connected to HBA
        [SCSI] bnx2i: Fixed NULL ptr deference for 1G bnx2 Linux iSCSI offload
        [SCSI] scsi: virtio-scsi: Fix address translation failure of HighMem pages used by sg list
      0bf7a705
    • S
      edac_mc: edac_mc_free() cannot assume mem_ctl_info is registered in sysfs. · faa2ad09
      Shaun Ruffell 提交于
      Fix potential NULL pointer dereference in edac_unregister_sysfs() on
      system boot introduced in 3.6-rc1.
      
      Since commit 7a623c03 ("edac: rewrite the sysfs code to use struct
      device") edac_mc_alloc() no longer initializes embedded kobjects in
      struct mem_ctl_info.  Therefore edac_mc_free() can no longer simply
      decrement a kobject reference count to free the allocated memory unless
      the memory controller driver module had also called edac_mc_add_mc().
      
      Now edac_mc_free() will check if the newly embedded struct device has
      been registered with sysfs before using either the standard device
      release functions or freeing the data structures itself with logic
      pulled out of the error path of edac_mc_alloc().
      
      The BUG this patch resolves for me:
      
        BUG: unable to handle kernel NULL pointer dereference at   (null)
        EIP is at __wake_up_common+0x1a/0x6a
        Process modprobe (pid: 933, ti=f3dc6000 task=f3db9520 task.ti=f3dc6000)
        Call Trace:
          complete_all+0x3f/0x50
          device_pm_remove+0x23/0xa2
          device_del+0x34/0x142
          edac_unregister_sysfs+0x3b/0x5c [edac_core]
          edac_mc_free+0x29/0x2f [edac_core]
          e7xxx_probe1+0x268/0x311 [e7xxx_edac]
          e7xxx_init_one+0x56/0x61 [e7xxx_edac]
          local_pci_probe+0x13/0x15
        ...
      
      Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
      Cc: Shaohui Xie <Shaohui.Xie@freescale.com>
      Signed-off-by: NShaun Ruffell <sruffell@digium.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      faa2ad09
    • F
      edac_mc: fix messy kfree calls in the error path · ef6e7816
      Fengguang Wu 提交于
      coccinelle warns about:
      
      + drivers/edac/edac_mc.c:429:9-23: ERROR: reference preceded by free on line 429
      
         421         if (mci->csrows) {
       > 422                 for (chn = 0; chn < tot_channels; chn++) {
         423                         csr = mci->csrows[chn];
         424                         if (csr) {
       > 425                                 for (chn = 0; chn < tot_channels; chn++)
         426                                          kfree(csr->channels[chn]);
         427                                  kfree(csr);
         428                          }
       > 429                          kfree(mci->csrows[i]);
         430                  }
         431                  kfree(mci->csrows);
         432          }
      
      and that code block seem to mess things up in several ways (double free, memory
      leak, out-of-bound reads etc.):
      
      L422: The iterator "chn" and bound "tot_channels" are totally wrong. Should be
            "row" and "tot_csrows" respectively. Which means either memory leak, or
            out-of-bound reads (which if does not trigger an immediate page fault
            error, will further lead to kfree() on random addresses).
      
      L425: The inner loop is reusing the same iterator "chn" as the outer loop,
            which could lead to premature end of the outer loop, and hence memory leak.
      
      L429: The array index 'i' in mci->csrows[i] is a temporary value used in
            previous loops, and won't change at all in the current loop. Which
            means either out-of-bound read and possibly kfree(random number), or the
            same mci->csrows[i] get freed once and again, and possibly double free
            for the kfree(csr) in L427.
      
      L426/L427: a kfree(csr->channels) is needed in between to avoid leaking the memory.
      
      The buggy code was introduced by commit de3910eb ("edac: change the mem
      allocation scheme to make Documentation/kobject.txt happy") in the 3.6-rc1
      merge window. Fix it by freeing up resources in this order:
      
        free csrows[i]->channels[j]
        free csrows[i]->channels
        free csrows[i]
        free csrows
      
      CC: Mauro Carvalho Chehab <mchehab@redhat.com>
      CC: Shaun Ruffell <sruffell@digium.com>
      Signed-off-by: NFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ef6e7816
    • A
      hwmon: (fam15h_power) Tweak runavg_range on resume · 5f0ecb90
      Andreas Herrmann 提交于
      The quirk introduced with commit
      00250ec9 (hwmon: fam15h_power: fix
      bogus values with current BIOSes) is not only required during driver
      load but also when system resumes from suspend. The BIOS might set the
      previously recommended (but unsuitable) initilization value for the
      running average range register during resume.
      Signed-off-by: NAndreas Herrmann <andreas.herrmann3@amd.com>
      Tested-by: NAndreas Hartmann <andihartmann@01019freenet.de>
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Cc: stable@vger.kernel.org # 3.0+
      5f0ecb90
    • S
      hwmon: (coretemp) Use get_online_cpus to avoid races involving CPU hotplug · 641f1456
      Silas Boyd-Wickizer 提交于
      coretemp_init loops with for_each_online_cpu, adding platform_devices
      and sysfs interfaces, then calls register_hotcpu_notifier.  There is a
      race if a CPU is offlined or onlined after the loop, but before
      register_hotcpu_notifier.  The race might result in the absence of a
      platform_device+sysfs interface for an online CPU, or the presence of
      a platform_device+sysfs interface for an offline CPU.  A similar race
      occurs during coretemp_exit, after the module calls
      unregister_hotcpu_notifier, but before it unregisters all devices, a
      CPU might offline and a device for an offline CPU will exist for a
      short while.
      
      This fix surrounds for_each_online_cpu and register_hotcpu_notifier
      with get_online_cpus+put_online_cpus; and surrounds
      unregister_hotcpu_notifier and device unregistering with
      get_online_cpus+put_online_cpus.
      
      Build tested.
      Signed-off-by: NSilas Boyd-Wickizer <sbw@mit.edu>
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      641f1456
    • S
      hwmon: (via-cputemp) Use get_online_cpus to avoid races involving CPU hotplug · 1ec3ddfd
      Silas Boyd-Wickizer 提交于
      via_cputemp_init loops with for_each_online_cpu, adding
      platform_devices, then calls register_hotcpu_notifier.  If a CPU is
      offlined between the loop and register_hotcpu_notifier, then later
      onlined, via_cputemp_device_add will attempt to add platform devices
      with the same ID.  A similar race occurs during via_cputemp_exit,
      after the module calls unregister_hotcpu_notifier, a CPU might offline
      and a device will exist for a CPU that is offline.
      
      This fix surrounds for_each_online_cpu and register_hotcpu_notifier
      with get_online_cpus+put_online_cpus; and surrounds
      unregister_hotcpu_notifier and device unregistering with
      get_online_cpus+put_online_cpus.
      
      Build tested.
      Signed-off-by: NSilas Boyd-Wickizer <sbw@mit.edu>
      Acked-by: NHarald Welte <laforge@gnumonks.org>
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      1ec3ddfd
  2. 23 9月, 2012 4 次提交
    • L
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · e5e77cf9
      Linus Torvalds 提交于
      Pull MIPS fixes from Ralf Baechle:
       "Random fixes across arch/mips, essentially.
      
        One fix for an issue in get_user_pages_fast() which previously was
        discovered on x86, a miscalculation in the support for the MIPS MT
        hardware multithreading support, the RTC support for the Malta and a
        fix for a spurious interrupt issue that seems to bite only very
        special Malta configurations."
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: Malta: Don't crash on spurious interrupt.
        MIPS: Malta: Remove RTC Data Mode bootstrap breakage
        MIPS: mm: Add compound tail page _mapcount when mapped
        MIPS: CMP/SMTC: Fix tc_id calculation
      e5e77cf9
    • L
      Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm · b3a297d1
      Linus Torvalds 提交于
      Pull ARM and clkdev fixes from Russell King:
       "Two patches for clkdev which resolve the long standing issue that the
        devm_* versions were dependent on clkdev, which they shouldn't have
        been.  Instead, they're dependent on HAVE_CLK instead, which implies
        that you're providing clk_get() and clk_put().
      
        A small fix to the ARM decompressor to ensure that the page tables are
        properly interpreted by the CPU, and reserve syscall 378 for kcmp (the
        checksyscalls.sh script is unfortunately currently broken so arch
        maintainers aren't getting notified of new syscalls...)
      
        Lastly, a larger fix for an issue between the common clk subsystem and
        smp_twd which causes warnings to be spat out."
      
      * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
        ARM: reserve syscall 378 for kcmp
        ARM: 7535/1: Reprogram smp_twd based on new common clk framework notifiers
        ARM: 7537/1: clk: Fix release in devm_clk_put()
        ARM: 7532/1: decompressor: reset SCTLR.TRE for VMSA ARMv7 cores
        ARM: 7534/1: clk: Make the managed clk functions generically available
      b3a297d1
    • L
      Merge branch 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · cead24c1
      Linus Torvalds 提交于
      Pull HID fixes from Jiri Kosina:
       "The most important fix is Logitech Unifying receiver regression in
        device enumeration fix from Nestor Lopez Casado.  In addition to that,
        there is a small memory leak fix for Thinkpad keyboard driver from
        Axel Lin."
      
      * 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: Fix logitech-dj: missing Unifying device issue
        HID: lenovo-tpkbd: Fix memory leak in tpkbd_remove_tp()
      cead24c1
    • L
      Merge branch 'for-linus' of git://git.samba.org/sfrench/cifs-2.6 · a4be6c77
      Linus Torvalds 提交于
      Pull cifs fix from Steve French.
      
      * 'for-linus' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: fix return value in cifsConvertToUTF16
      a4be6c77
  3. 22 9月, 2012 7 次提交
    • N
      HID: Fix logitech-dj: missing Unifying device issue · 59626408
      Nestor Lopez Casado 提交于
      This patch fixes an issue introduced after commit 4ea54542
      ("HID: Fix race condition between driver core and ll-driver").
      
      After that commit, hid-core discards any incoming packet that arrives while
      hid driver's probe function is being executed.
      
      This broke the enumeration process of hid-logitech-dj, that must receive
      control packets in-band with the mouse and keyboard packets. Discarding mouse
      or keyboard data at the very begining is usually fine, but it is not the case
      for control packets.
      
      This patch forces a re-enumeration of the paired devices when a packet arrives
      that comes from an unknown device.
      
      Based on a patch originally written by Benjamin Tissoires.
      
      Cc: stable@vger.kernel.org   # v3.2+
      Signed-off-by: NNestor Lopez Casado <nlopezcasad@logitech.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      59626408
    • A
      HID: lenovo-tpkbd: Fix memory leak in tpkbd_remove_tp() · 39149980
      Axel Lin 提交于
      We need to kfree names for led_mute and led_micmute in tpkbd_remove_tp().
      Signed-off-by: NAxel Lin <axel.lin@gmail.com>
      Acked-by: NBernhard Seibold <mail@bernhard-seibold.de>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      39149980
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · abef3bd7
      Linus Torvalds 提交于
      Pull networking updates from David Miller:
       "More bug fixes, nothing gets past these guys"
      
       1) More kernel info leaks found by Mathias Krause, this time in the
          IPSEC configuration layers.
      
       2) When IPSEC policies change, we do not properly make sure that cached
          routes (which could now be stale) throughout the system will be
          revalidated.  Fix this by generalizing the generation count
          invalidation scheme used by ipv4.  From Nicolas Dichtel.
      
       3) When repairing TCP sockets, we need to allow to restore not just the
          send window scale, but the receive one too.  Extend the existing
          interface to achieve this in a backwards compatible way.  From
          Andrey Vagin.
      
       4) A fix for FCOE scatter gather feature validation erroneously caused
          scatter gather to be disabled for things like AOE too.  From Ed L
          Cashin.
      
       5) Several cases of mishandling of error pointers, from Mathias Krause,
          Wei Yongjun, and Devendra Naga.
      
       6) Fix gianfar build, from Richard Cochran.
      
       7) CAP_NET_* failures should return -EPERM not -EACCES, from Zhao
          Hongjiang.
      
       8) Hardware reset fix in janz-ican3 CAN driver, from Ira W Snyder.
      
       9) Fix oops during rmmod in ti_hecc CAN driver, from Marc Kleine-Budde.
      
      10) The removal of the conditional compilation of the clk support code
          in the stmmac driver broke things.  This is because the interfaces
          used are the ones that don't also perform the enable/disable of the
          clk.  Fix from Stefan Roese.
      
      11) The QFQ packet scheduler can record out of range virtual start
          times, resulting later in misbehavior and even crashes.  Fix from
          Paolo Valente.
      
      12) If MSG_WAITALL is used with IOAT DMA under TCP, we can wedge the
          receiver when the advertised receive window goes to zero.  Detect
          this case and force the processing of the IOAT DMA queue when it
          happens to avoid getting stuck.  Fix from Michal Kubecek.
      
      13) batman-adv assumes that test_bit() returns only 0 or 1, but this is
          not true for x86 (which returns -1 or 0, via the 'sbb' instruction).
          Fix from Linus Lussing.
      
      14) Fix small packet corruption in e1000, from Tushar Dave.
      
      15) make_blackhole() in the IPSEC policy code can do one read unlock too
          many, fix from Li RongQing.
      
      16) The new tcp_try_coalesce() code introduced a bug in TCP URG
          handling, fix from Eric Dumazet.
      
      17) Fix memory leak in __netif_receive_skb() when doing zerocopy and
          when hit an OOM condition.  From Michael S Tsirkin.
      
      18) netxen blindly deferences pdev->bus->self, which is not guarenteed
          to be non-NULL.  Fix from Nikolay Aleksandrov.
      
      19) Fix a performance regression caused by mistakes in ipv6 checksum
          validation in the bnx2x driver, fix from Michal Schmidt.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (45 commits)
        net/stmmac: Use clk_prepare_enable and clk_disable_unprepare
        net: change return values from -EACCES to -EPERM
        net/irda: sh_sir: fix return value check in sh_sir_set_baudrate()
        stmmac: fix return value check in stmmac_open_ext_timer()
        gianfar: fix phc index build failure
        ipv6: fix return value check in fib6_add()
        bnx2x: remove false warning regarding interrupt number
        can: ti_hecc: fix oops during rmmod
        can: janz-ican3: fix support for older hardware revisions
        net: do not disable sg for packets requiring no checksum
        aoe: assert AoE packets marked as requiring no checksum
        at91ether: return PTR_ERR if call to clk_get fails
        xfrm_user: don't copy esn replay window twice for new states
        xfrm_user: ensure user supplied esn replay window is valid
        xfrm_user: fix info leak in copy_to_user_tmpl()
        xfrm_user: fix info leak in copy_to_user_policy()
        xfrm_user: fix info leak in copy_to_user_state()
        xfrm_user: fix info leak in copy_to_user_auth()
        net: qmi_wwan: adding Huawei E367, ZTE MF683 and Pantech P4200
        tcp: restore rcv_wscale in a repair mode (v2)
        ...
      abef3bd7
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 6219844e
      Linus Torvalds 提交于
      Pull sparc updates from David Miller:
      
      1) Debugging builds on 32-bit sparc need to handle the R_SPARC_DISP32
         relocation, not just 64-bit sparc.  From Andreas Larsson.
      
      2) Wei Yongjun noticed that module_alloc() on sparc can return an
         error pointer, but that's not allowed.  module_alloc() should
         return only a valid pointer, or NULL.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc: fix the return value of module_alloc()
        sparc32: Enable the relocation target R_SPARC_DISP32 for sparc32
      6219844e
    • L
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9d108907
      Linus Torvalds 提交于
      Pull x86 fixes from Ingo Molnar:
       "Small fixlets"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm/init.c: Fix devmem_is_allowed() off by one
        x86/kconfig: Remove outdated reference to Intel CPUs in CONFIG_SWIOTLB
      9d108907
    • L
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 519b3b74
      Linus Torvalds 提交于
      Pull timer fix from Ingo Molnar:
       "One more timekeeping fix for v3.6"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        time: Fix timeekeping_get_ns overflow on 32bit systems
      519b3b74
    • L
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 18f5600b
      Linus Torvalds 提交于
      Pull perf fixes from Ingo Molnar:
       "Small perf fixlets"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tracing: Don't call page_to_pfn() if page is NULL
        perf/x86: Fix Intel Ivy Bridge support
        perf/x86/ibs: Check syscall attribute flags
        perf/x86: Export Sandy Bridge uncore clockticks event in sysfs
      18f5600b