1. 14 2月, 2012 4 次提交
  2. 12 2月, 2012 1 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 3ec1e88b
      Linus Torvalds 提交于
      Says Jens:
      
       "Time to push off some of the pending items.  I really wanted to wait
        until we had the regression nailed, but alas it's not quite there yet.
        But I'm very confident that it's "just" a missing expire on exit, so
        fix from Tejun should be fairly trivial.  I'm headed out for a week on
        the slopes.
      
        - Killing the barrier part of mtip32xx.  It doesn't really support
          barriers, and it doesn't need them (writes are fully ordered).
      
        - A few fixes from Dan Carpenter, preventing overflows of integer
          multiplication.
      
        - A fixup for loop, fixing a previous commit that didn't quite solve
          the partial read problem from Dave Young.
      
        - A bio integer overflow fix from Kent Overstreet.
      
        - Improvement/fix of the door "keep locked" part of the cdrom shared
          code from Paolo Benzini.
      
        - A few cfq fixes from Shaohua Li.
      
        - A fix for bsg sysfs warning when removing a file it did not create
          from Stanislaw Gruszka.
      
        - Two fixes for floppy from Vivek, preventing a crash.
      
        - A few block core fixes from Tejun.  One killing the over-optimized
          ioc exit path, cleaning that up nicely.  Two others fixing an oops
          on elevator switch, due to calling into the scheduler merge check
          code without holding the queue lock."
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        block: fix lockdep warning on io_context release put_io_context()
        relay: prevent integer overflow in relay_open()
        loop: zero fill bio instead of return -EIO for partial read
        bio: don't overflow in bio_get_nr_vecs()
        floppy: Fix a crash during rmmod
        floppy: Cleanup disk->queue before caling put_disk() if add_disk() was never called
        cdrom: move shared static to cdrom_device_info
        bsg: fix sysfs link remove warning
        block: don't call elevator callbacks for plug merges
        block: separate out blk_rq_merge_ok() and blk_try_merge() from elevator functions
        mtip32xx: removed the irrelevant argument of mtip_hw_submit_io() and the unused member of struct driver_data
        block: strip out locking optimization in put_io_context()
        cdrom: use copy_to_user() without the underscores
        block: fix ioc locking warning
        block: fix NULL icq_cache reference
        block,cfq: change code order
      3ec1e88b
  3. 11 2月, 2012 11 次提交
    • T
      block: fix lockdep warning on io_context release put_io_context() · d8c66c5d
      Tejun Heo 提交于
      11a3122f "block: strip out locking optimization in put_io_context()"
      removed ioc_lock depth lockdep annoation along with locking
      optimization; however, while recursing from put_io_context() is no
      longer possible, ioc_release_fn() may still end up putting the last
      reference of another ioc through elevator, which wlil grab ioc->lock
      triggering spurious (as the ioc is always different one) A-A deadlock
      warning.
      
      As this can only happen one time from ioc_release_fn(), using non-zero
      subclass from ioc_release_fn() is enough.  Use subclass 1.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      d8c66c5d
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 8df54d62
      Linus Torvalds 提交于
      Quoth David:
      
      1) GRO MAC header comparisons were ethernet specific, breaking other
         link types.  This required a multi-faceted fix to cure the originally
         noted case (Infiniband), because IPoIB was lying about it's actual
         hard header length.  Thanks to Eric Dumazet, Roland Dreier, and
         others.
      
      2) Fix build failure when INET_UDP_DIAG is built in and ipv6 is modular.
         From Anisse Astier.
      
      3) Off by ones and other bug fixes in netprio_cgroup from Neil Horman.
      
      4) ipv4 TCP reset generation needs to respect any network interface
         binding from the socket, otherwise route lookups might give a
         different result than all the other segments received.  From Shawn
         Lu.
      
      5) Fix unintended regression in ipv4 proxy ARP responses, from Thomas
         Graf.
      
      6) Fix SKB under-allocation bug in sh_eth, from Yoshihiro Shimoda.
      
      7) Revert skge PCI mapping changes that are causing crashes for some
         folks, from Stephen Hemminger.
      
      8) IPV4 route lookups fill in the wildcarded fields of the given flow
         lookup key passed in, which is fine most of the time as this is
         exactly what the caller's want.  However there are a few cases that
         want to retain the original flow key values afterwards, so handle
         those cases properly.  Fix from Julian Anastasov.
      
      9) IGB/IXGBE VF lookup bug fixes from Greg Rose.
      
      10) Properly null terminate filename passed to ethtool flash device
          method, from Ben Hutchings.
      
      11) S3 resume fix in via-velocity from David Lv.
      
      12) Fix double SKB free during xmit failure in CAIF, from Dmitry
          Tarnyagin.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (72 commits)
        net: Don't proxy arp respond if iif == rt->dst.dev if private VLAN is disabled
        ipv4: Fix wrong order of ip_rt_get_source() and update iph->daddr.
        netprio_cgroup: fix wrong memory access when NETPRIO_CGROUP=m
        netprio_cgroup: don't allocate prio table when a device is registered
        netprio_cgroup: fix an off-by-one bug
        bna: fix error handling of bnad_get_flash_partition_by_offset()
        isdn: type bug in isdn_net_header()
        net: Make qdisc_skb_cb upper size bound explicit.
        ixgbe: ethtool: stats user buffer overrun
        ixgbe: dcb: up2tc mapping lost on disable/enable CEE DCB state
        ixgbe: do not update real num queues when netdev is going away
        ixgbe: Fix broken dependency on MAX_SKB_FRAGS being related to page size
        ixgbe: Fix case of Tx Hang in PF with 32 VFs
        ixgbe: fix vf lookup
        igb: fix vf lookup
        e1000: add dropped DMA receive enable back in for WoL
        gro: more generic L2 header check
        IPoIB: Stop lying about hard_header_len and use skb->cb to stash LL addresses
        zd1211rw: firmware needs duration_id set to zero for non-pspoll frames
        net: enable TC35815 for MIPS again
        ...
      8df54d62
    • T
      net: Don't proxy arp respond if iif == rt->dst.dev if private VLAN is disabled · 70620c46
      Thomas Graf 提交于
      Commit 653241 (net: RFC3069, private VLAN proxy arp support) changed
      the behavior of arp proxy to send arp replies back out on the interface
      the request came in even if the private VLAN feature is disabled.
      
      Previously we checked rt->dst.dev != skb->dev for in scenarios, when
      proxy arp is enabled on for the netdevice and also when individual proxy
      neighbour entries have been added.
      
      This patch adds the check back for the pneigh_lookup() scenario.
      Signed-off-by: NThomas Graf <tgraf@suug.ch>
      Acked-by: NJesper Dangaard Brouer <hawk@comx.dk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      70620c46
    • L
      ipv4: Fix wrong order of ip_rt_get_source() and update iph->daddr. · 5dc7883f
      Li Wei 提交于
      This patch fix a bug which introduced by commit ac8a4810 (ipv4: Save
      nexthop address of LSRR/SSRR option to IPCB.).In that patch, we saved
      the nexthop of SRR in ip_option->nexthop and update iph->daddr until
      we get to ip_forward_options(), but we need to update it before
      ip_rt_get_source(), otherwise we may get a wrong src.
      Signed-off-by: NLi Wei <lw@cn.fujitsu.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5dc7883f
    • N
      netprio_cgroup: fix wrong memory access when NETPRIO_CGROUP=m · 2b73bc65
      Neil Horman 提交于
      When the netprio_cgroup module is not loaded, net_prio_subsys_id
      is -1, and so sock_update_prioidx() accesses cgroup_subsys array
      with negative index subsys[-1].
      
      Make the code resembles cls_cgroup code, which is bug free.
      Origionally-authored-by: NLi Zefan <lizf@cn.fujitsu.com>
      Signed-off-by: NLi Zefan <lizf@cn.fujitsu.com>
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      CC: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2b73bc65
    • N
      netprio_cgroup: don't allocate prio table when a device is registered · f5c38208
      Neil Horman 提交于
      So we delay the allocation till the priority is set through cgroup,
      and this makes skb_update_priority() faster when it's not set.
      
      This also eliminates an off-by-one bug similar with the one fixed
      in the previous patch.
      Origionally-authored-by: NLi Zefan <lizf@cn.fujitsu.com>
      Signed-off-by: NLi Zefan <lizf@cn.fujitsu.com>
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      CC: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f5c38208
    • N
      netprio_cgroup: fix an off-by-one bug · a87dfe14
      Neil Horman 提交于
      # mount -t cgroup xxx /mnt
        # mkdir /mnt/tmp
        # cat /mnt/tmp/net_prio.ifpriomap
        lo 0
        eth0 0
        virbr0 0
        # echo 'lo 999' > /mnt/tmp/net_prio.ifpriomap
        # cat /mnt/tmp/net_prio.ifpriomap
        lo 999
        eth0 0
        virbr0 4101267344
      
      We got weired output, because we exceeded the boundary of the array.
      We may even crash the kernel..
      Origionally-authored-by: NLi Zefan <lizf@cn.fujitsu.com>
      Signed-off-by: NLi Zefan <lizf@cn.fujitsu.com>
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      CC: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a87dfe14
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 612b8507
      Linus Torvalds 提交于
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/i915: fixup interlaced bits clearing in PIPECONF on PCH_SPLIT (v2)
        drm/i915: no lvds quirk for AOpen MP45
        drm/i915: Force explicit bpp selection for intel_dp_link_required
        drm/radeon: do not continue after error from r600_ib_test
        drivers/gpu/drm/drm_ioc32.c: initialize all fields
        drm/i915: fixup interlaced bits clearing in PIPECONF on PCH_SPLIT
        drm/i915:: Disable FBC on SandyBridge
      612b8507
    • L
      Merge tag 'writeback-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux · af5feae3
      Linus Torvalds 提交于
      fix 1 mysterious divide error
      fix 3 NULL dereference bugs in writeback tracing, on SD card removal w/o umount
      
      * tag 'writeback-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:
        writeback: fix dereferencing NULL bdi->dev on trace_writeback_queue
        lib: proportion: lower PROP_MAX_SHIFT to 32 on 64-bit kernel
        writeback: fix NULL bdi->dev in trace writeback_single_inode
        backing-dev: fix wakeup timer races with bdi_unregister()
      af5feae3
    • L
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ce2814f2
      Linus Torvalds 提交于
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf: Fix double start/stop in x86_pmu_start()
        perf evsel: Fix an issue where perf report fails to show the proper percentage
        perf tools: Fix prefix matching for kernel maps
        perf tools: Fix perf stack to non executable on x86_64
        perf: Remove deprecated WARN_ON_ONCE()
      ce2814f2
    • L
      Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 1282ab3f
      Linus Torvalds 提交于
      Couple of regressions, couple of zero-day bugs, a minor enhancement.
      Nothing really major.
      
      * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (f75375s) Let f75375_update_device treat pwmX as a measured value
        hwmon: (f75375s) Fix bit shifting in f75375_write16
        hwmon: (f75375s) Fix reading of wrong register when initializing the F75387
        hwmon: (f75375s) Fix automatic pwm mode setting for F75373 & F75375
        hwmon: (w83627ehf) Remove duplicate code
      1282ab3f
  4. 10 2月, 2012 15 次提交
  5. 09 2月, 2012 9 次提交
    • J
      ixgbe: ethtool: stats user buffer overrun · 9cc00b51
      John Fastabend 提交于
      If the number of tx/rx queues changes the ethtool ioctl
      ETHTOOL_GSTATS may overrun the userspace buffer. This
      occurs because the general practice in user space to
      query stats is to issue a ETHTOOL_GSSET cmd to learn the
      buffer size needed, allocate the buffer, then call
      ETHTOOL_GSTIRNGS and ETHTOOL_GSTATS. If the number of
      real_num_queues is changed or flow control attributes
      are changed after ETHTOOL_GSSET but before the
      ETHTOOL_GSTRINGS/ETHTOOL_GSTATS a user space buffer
      overrun occurs.
      
      To fix the overrun always return the max buffer size
      needed from get_sset_count() then return all strings
      and stats from get_strings()/get_ethtool_stats().
      
      This _will_ change the output from the ioctl() call
      which could break applications and script parsing in
      theory. I believe these changes should not break existing
      tools because the only changes will be more {tx|rx}_queues
      and the {tx|rx}_pb_* stats will always be returned.
      Existing scripts already need to handle changing number
      of queues because this occurs today depending on system
      and current features. The {tx|rx}_pb_* stats are at the
      end of the output and should be handled by scripts today
      regardless.
      
      Finally get_ethtool_stats and get_strings are free-form
      outputs tools parsing these outputs should be defensive
      anyways. In the end these updates are better then
      having a tool segfault because of a buffer overrun.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      9cc00b51
    • J
      ixgbe: dcb: up2tc mapping lost on disable/enable CEE DCB state · 5facb8e0
      John Fastabend 提交于
      Users expect the up2tc mapping to be maintained across a DCB
      enable/disable/enable transition. And since we maintain all
      the other DCB attributes we should do this for up2tc mappings
      as well just to be consistent. Also without this we break
      user space applications that expect this to occur that
      previously worked.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Tested-by: NStephen Ko <stephen.s.ko@intel.com>
      Tested-by: NRoss Brattain <ross.b.brattain@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      5facb8e0
    • Y
      ixgbe: do not update real num queues when netdev is going away · 9d837ea2
      Yi Zou 提交于
      If the netdev is already in NETREG_UNREGISTERING/_UNREGISTERED state, do not
      update the real num tx queues. netdev_queue_update_kobjects() is already
      called via remove_queue_kobjects() at NETREG_UNREGISTERING time. So, when
      upper layer driver, e.g., FCoE protocol stack is monitoring the netdev
      event of NETDEV_UNREGISTER and calls back to LLD ndo_fcoe_disable() to remove
      extra queues allocated for FCoE, the associated txq sysfs kobjects are already
      removed, and trying to update the real num queues would cause something like
      below:
      
      ...
      PID: 25138  TASK: ffff88021e64c440  CPU: 3   COMMAND: "kworker/3:3"
       #0 [ffff88021f007760] machine_kexec at ffffffff810226d9
       #1 [ffff88021f0077d0] crash_kexec at ffffffff81089d2d
       #2 [ffff88021f0078a0] oops_end at ffffffff813bca78
       #3 [ffff88021f0078d0] no_context at ffffffff81029e72
       #4 [ffff88021f007920] __bad_area_nosemaphore at ffffffff8102a155
       #5 [ffff88021f0079f0] bad_area_nosemaphore at ffffffff8102a23e
       #6 [ffff88021f007a00] do_page_fault at ffffffff813bf32e
       #7 [ffff88021f007b10] page_fault at ffffffff813bc045
          [exception RIP: sysfs_find_dirent+17]
          RIP: ffffffff81178611  RSP: ffff88021f007bc0  RFLAGS: 00010246
          RAX: ffff88021e64c440  RBX: ffffffff8156cc63  RCX: 0000000000000004
          RDX: ffffffff8156cc63  RSI: 0000000000000000  RDI: 0000000000000000
          RBP: ffff88021f007be0   R8: 0000000000000004   R9: 0000000000000008
          R10: ffffffff816fed00  R11: 0000000000000004  R12: 0000000000000000
          R13: ffffffff8156cc63  R14: 0000000000000000  R15: ffff8802222a0000
          ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
       #8 [ffff88021f007be8] sysfs_get_dirent at ffffffff81178c07
       #9 [ffff88021f007c18] sysfs_remove_group at ffffffff8117ac27
      #10 [ffff88021f007c48] netdev_queue_update_kobjects at ffffffff813178f9
      #11 [ffff88021f007c88] netif_set_real_num_tx_queues at ffffffff81303e38
      #12 [ffff88021f007cc8] ixgbe_set_num_queues at ffffffffa0249763 [ixgbe]
      #13 [ffff88021f007cf8] ixgbe_init_interrupt_scheme at ffffffffa024ea89 [ixgbe]
      #14 [ffff88021f007d48] ixgbe_fcoe_disable at ffffffffa0267113 [ixgbe]
      #15 [ffff88021f007d68] vlan_dev_fcoe_disable at ffffffffa014fef5 [8021q]
      #16 [ffff88021f007d78] fcoe_interface_cleanup at ffffffffa02b7dfd [fcoe]
      #17 [ffff88021f007df8] fcoe_destroy_work at ffffffffa02b7f08 [fcoe]
      #18 [ffff88021f007e18] process_one_work at ffffffff8105d7ca
      #19 [ffff88021f007e68] worker_thread at ffffffff81060513
      #20 [ffff88021f007ee8] kthread at ffffffff810648b6
      #21 [ffff88021f007f48] kernel_thread_helper at ffffffff813c40f4
      Signed-off-by: NYi Zou <yi.zou@intel.com>
      Tested-by: NRoss Brattain <ross.b.brattain@intel.com>
      Tested-by: NStephen Ko <stephen.s.ko@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      9d837ea2
    • A
      ixgbe: Fix broken dependency on MAX_SKB_FRAGS being related to page size · 642c680e
      Alexander Duyck 提交于
      This patch fixes an issue in which RSC will generate corrupted frames when
      PAGE_SIZE is larger than 8K.  Specifically it looks like that in 2.6.39 a
      change was made so that GRO would always have at least 16 frags available
      for coalescing, but the ixgbe RSC logic was not updated.  As such the RSC
      feature would generate a frame larger than 64K and then overflow the value
      in the IP length field.
      
      To correct that I am now basing things on the PAGE_SIZE.
      Signed-off-by: NAlexander Duyck <alexander.h.duyck@intel.com>
      Tested-by: NStephen Ko <stephen.s.ko@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      642c680e
    • G
      ixgbe: Fix case of Tx Hang in PF with 32 VFs · 4cd6923d
      Greg Rose 提交于
      A check for the number of VFs allocated should have used a greater than
      equal operator instead of just greater than.  This caused allocation of
      exactly 32 VFs to not enable the PF transmit and receive enables.
      Signed-off-by: NGreg Rose <gregory.v.rose@intel.com>
      Tested-by: NRobert E Garrett <robertX.e.garrett@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      4cd6923d
    • G
      ixgbe: fix vf lookup · a4b08329
      Greg Rose 提交于
      Recent addition of code to find already allocated VFs failed to take
      account that systems with 2 or more multi-port SR-IOV capable controllers
      might have already enabled VFs.  Make sure that the VFs the function is
      finding are actually subordinate to the particular instance of the adapter
      that is looking for them and not subordinate to some device that has
      previously enabled SR-IOV.
      
      This bug exists in 3.2 stable as well as 3.3 release candidates.
      
      CC: stable@vger.kernel.org
      Reported-by: NDavid Ahern <daahern@cisco.com>
      Signed-off-by: NGreg Rose <gregory.v.rose@intel.com>
      Tested-by: NRobert E Garrett <robertX.e.garrett@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      a4b08329
    • G
      igb: fix vf lookup · 06292921
      Greg Rose 提交于
      Recent addition of code to find already allocated VFs failed to take
      account that systems with 2 or more multi-port SR-IOV capable controllers
      might have already enabled VFs.  Make sure that the VFs the function is
      finding are actually subordinate to the particular instance of the adapter
      that is looking for them and not subordinate to some device that has
      previously enabled SR-IOV.
      
      This is applicable to 3.2+ kernels.
      
      CC: stable@vger.kernel.org
      Reported-by: NDavid Ahern <daahern@cisco.com>
      Signed-off-by: NGreg Rose <gregory.v.rose@intel.com>
      Tested-by: NRobert E Garrett <robertX.e.garrett@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      06292921
    • D
      e1000: add dropped DMA receive enable back in for WoL · b868179c
      Dean Nelson 提交于
      Commit d5bc77a2 broke Wake-on-LAN by
      inadvertently dropping the enabling of DMA receives.
      
      Restore the enabling of DMA receives for WoL.
      
      This is applicable to 3.1+ stable trees.
      
      CC: stable@vger.stable.org
      Reported-by: NTobias Klausmann <klausman@schwarzvogel.de>
      Signed-off-by: NDean Nelson <dnelson@redhat.com>
      Tested-by: NTobias Klausmann <klausman@schwarzvogel.de>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      b868179c
    • N
      hwmon: (f75375s) Fix bit shifting in f75375_write16 · eb2f255b
      Nikolaus Schulz 提交于
      In order to extract the high byte of the 16-bit word, shift the word to
      the right, not to the left.
      Signed-off-by: NNikolaus Schulz <mail@microschulz.de>
      Cc: stable@kernel.org # 2.6.32+
      Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
      eb2f255b