1. 09 12月, 2009 19 次提交
    • E
      tcp: Fix a connect() race with timewait sockets · 3cdaedae
      Eric Dumazet 提交于
      When we find a timewait connection in __inet_hash_connect() and reuse
      it for a new connection request, we have a race window, releasing bind
      list lock and reacquiring it in __inet_twsk_kill() to remove timewait
      socket from list.
      
      Another thread might find the timewait socket we already chose, leading to
      list corruption and crashes.
      
      Fix is to remove timewait socket from bind list before releasing the bind lock.
      
      Note: This problem happens if sysctl_tcp_tw_reuse is set.
      Reported-by: Nkapil dakhane <kdakhane@gmail.com>
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3cdaedae
    • E
      tcp: Fix a connect() race with timewait sockets · 9327f705
      Eric Dumazet 提交于
      First patch changes __inet_hash_nolisten() and __inet6_hash()
      to get a timewait parameter to be able to unhash it from ehash
      at same time the new socket is inserted in hash.
      
      This makes sure timewait socket wont be found by a concurrent
      writer in __inet_check_established()
      Reported-by: Nkapil dakhane <kdakhane@gmail.com>
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9327f705
    • D
    • E
      ixgbe: Fix TX stats accounting · 60d51134
      Eric Dumazet 提交于
      Here is an updated version, because ixgbe_get_ethtool_stats()
      needs to call dev_get_stats() or "ethtool -S" wont give
      correct tx_bytes/tx_packets values.
      
      Several cpus can update netdev->stats.tx_bytes & netdev->stats.tx_packets
      in parallel. In this case, TX stats are under estimated and false sharing
      takes place.
      
      After a pktgen session sending exactly 200000000 packets :
      # ifconfig fiber0 | grep TX
                TX packets:198501982 errors:0 dropped:0 overruns:0 carrier:0
      
      Multi queue devices should instead use txq->tx_bytes & txq->tx_packets
      in their xmit() method (appropriate txq lock already held by caller, no
      cache line miss), or use appropriate locking.
      
      After patch, same pktgen session gives :
      
      # ifconfig fiber0 | grep TX
                TX packets:200000000 errors:0 dropped:0 overruns:0 carrier:0
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      60d51134
    • B
      e1000e: only perform ESB2 MDIC workaround on certain configurations · 3421eecd
      Bruce Allan 提交于
      A workaround added for all ESB2 devices (adds a delay for all MDIC accesses
      which resolves an issue with the MDIC ready bit being set prematurely) is
      applicable only to devices in which the MAC-PHY interconnect is not
      operating in a certain mode with in-band MDIO.  Check the control register
      for the operating mode and enable the workaround accordingly.
      Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3421eecd
    • B
      e1000e: replace incorrect use of GG82563_REG macro · 07818950
      Bruce Allan 提交于
      The GG82563_REG() macro should not be used to determine the offset provided
      to the e1000e_[read|write]_kmrn_reg() functions since the first argument to
      the macro is already implied and gets masked off anyway in the functions.
      The resultant register reads/writes with this patch are functionally the
      same as before.
      Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      07818950
    • B
      e1000e: minor correction to name of bit in CTRL_EXT register · 93a23f48
      Bruce Allan 提交于
      Bit 7 in the CTRL_REG register is actually the Software Definable Pin 3,
      not the Software Definable Pin 7.
      Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      93a23f48
    • D
      tcp: Remove runtime check that can never be true. · 3dc78932
      David S. Miller 提交于
      GCC even warns about it, as reported by Andrew Morton:
      
      net/ipv4/tcp.c: In function 'do_tcp_getsockopt':
      net/ipv4/tcp.c:2544: warning: comparison is always false due to limited range of data type
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3dc78932
    • D
    • L
      sctp: fix compile error due to sysctl mismerge · a252e749
      Linus Torvalds 提交于
      I messed up the merge in d7fc02c7, where
      the conflict in question wasn't just about CTL_UNNUMBERED being removed,
      but the 'strategy' field is too (sysctl handling is now done through the
      /proc interface, with no duplicate protocols for reading the data).
      Reported-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Reported-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a252e749
    • L
      Merge branch 'for-2.6.33' of git://git.kernel.dk/linux-2.6-block · 6035ccd8
      Linus Torvalds 提交于
      * 'for-2.6.33' of git://git.kernel.dk/linux-2.6-block: (113 commits)
        cfq-iosched: Do not access cfqq after freeing it
        block: include linux/err.h to use ERR_PTR
        cfq-iosched: use call_rcu() instead of doing grace period stall on queue exit
        blkio: Allow CFQ group IO scheduling even when CFQ is a module
        blkio: Implement dynamic io controlling policy registration
        blkio: Export some symbols from blkio as its user CFQ can be a module
        block: Fix io_context leak after failure of clone with CLONE_IO
        block: Fix io_context leak after clone with CLONE_IO
        cfq-iosched: make nonrot check logic consistent
        io controller: quick fix for blk-cgroup and modular CFQ
        cfq-iosched: move IO controller declerations to a header file
        cfq-iosched: fix compile problem with !CONFIG_CGROUP
        blkio: Documentation
        blkio: Wait on sync-noidle queue even if rq_noidle = 1
        blkio: Implement group_isolation tunable
        blkio: Determine async workload length based on total number of queues
        blkio: Wait for cfq queue to get backlogged if group is empty
        blkio: Propagate cgroup weight updation to cfq groups
        blkio: Drop the reference to queue once the task changes cgroup
        blkio: Provide some isolation between groups
        ...
      6035ccd8
    • L
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 23eb3b64
      Linus Torvalds 提交于
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: (54 commits)
        Revert "pata_sis: Implement MWDMA for the UDMA 133 capable chips"
        libata: Clarify ata_set_lba_range_entries function
        libata: Report zeroed read after TRIM and max discard size
        pata_hpt3x2n: fix overclocked MWDMA0 timing
        pata_it8213: MWDMA0 is unsupported
        [libata] MWDMA0 is unsupported on PIIX-like PATA controllers
        pata_via: clear UDMA transfer mode bit for PIO and MWDMA
        pata_sis: Power Management fix
        pata_rz1000: Power Management fix
        pata_radisys: fix UDMA handling
        pata_ns87415: Power Management fix
        pata_marvell: fix marvell_pre_reset() documentation
        pata_legacy: add pointers to QDI65x0 documentation
        pata_legacy: fix access to control register for QDI6580
        pata_legacy: fix QDI6580DP support
        pata_it8213: fix it8213_pre_reset() documentation
        pata_it8213: fix wrong MWDMA timings being programmed
        pata_it8213: fix PIO2 underclocking
        pata_it8213: fix wrong PIO timings being programmed
        pata_it8213: fix UDMA handling
        ...
      23eb3b64
    • L
      Merge branch 'omap-for-linus' of... · 1c496784
      Linus Torvalds 提交于
      Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
      
      * 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (149 commits)
        arm: omap: Add omap3_defconfig
        AM35xx: Defconfig for AM3517 EVM board
        AM35xx: Add support for AM3517 EVM board
        omap: 3630sdp: defconfig creation
        omap: 3630sdp: introduce 3630 sdp board support
        omap3: Add defconfig for IGEP v2 board
        omap3: Add minimal IGEP v2 support
        omap3: Add CompuLab CM-T35 defconfig
        omap3: Add CompuLab CM-T35 board support
        omap3: rx51: Add wl1251 wlan driver support
        omap3: rx51: Add SDRAM init
        omap1: Add default kernel configuration for Herald
        omap1: Add board support and LCD for HTC Herald
        omap: zoom2: update defconfig for LL_DEBUG_NONE
        omap: zoom3: defconfig creation
        omap3: zoom: Introduce zoom3 board support
        omap3: zoom: Drop i2c-1 speed to 2400
        omap3: zoom: rename zoom2 name to generic zoom
        omap3: zoom: split board file for software reuse
        omap3evm: MIgrate to smsc911x ethernet driver
        ...
      
      Fix trivial conflict (two unrelated config options added next to each
      other) in arch/arm/mach-omap2/Makefile
      1c496784
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · adf9904d
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: parport_mfc3 - Not makes it a bool before the comparison.
        m68k: don't export static inline functions
        fbdev: atafb - add palette register check
        m68k: Remove the BKL from sys_execve
        m68k: Cleanup linker scripts using new linker script macros.
        m68k: Make thread_info.h usable from assembly.
        m68knommu: define arch_has_single_step() and friends
        m68k: ptrace fixes
        m68k: use generic code for ptrace requests
        rtc: Add an RTC driver for the Ricoh RP5C01
        rtc: Add an RTC driver for the Oki MSM6242
      adf9904d
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 · bb592cf4
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
        ieee1394: Use hweight32
        firewire: cdev: reduce stack usage by ioctl_dispatch
        firewire: ohci: 0 may be a valid DMA address
        firewire: core: WARN on wrong usage of core transaction functions
        firewire: core: optimize Topology Map creation
        firewire: core: clarify generate_config_rom usage
        firewire: optimize config ROM creation
        firewire: cdev: normalize variable names
        firewire: normalize style of queue_work wrappers
        firewire: cdev: fix memory leak in an error path
      bb592cf4
    • L
      Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm · 79c9601c
      Linus Torvalds 提交于
      * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (272 commits)
        Fix soc_common PCMCIA configuration
        ARM: 5827/1: SA1100: h3100/h3600: emit messages on failed gpio_request
        ARM: 5826/1: SA1100: h3100/h3600: always build htc-egpio driver
        ARM: 5825/1: SA1100: h3600: update defconfig
        ARM: 5824/1: SA1100: reuse h3600 PCMCIA driver on h3100
        ARM: 5823/1: SA1100: h3100/h3600: add support for gpio-keys
        ARM: 5822/1: SA1100: h3100/h3600: clean up #includes
        ARM: 5821/1: SA1100: h3100/h3600: revise copyright boilerplates
        ARM: 5820/1: SA1100: h3100/h3600: split h3600.c
        ARM: 5819/1: SA1100: h3100/h3600: merge h3600.h and h3600_gpio.h into h3xxx.h
        ARM: 5818/1: SA1100: h3100/h3600: drop old GPIO definitions
        ARM: 5817/1: SA1100: h3100/h3600: configure all unused gpios as inputs
        ARM: 5816/1: SA1100: h3600: remove IRQ_GPIO_* definitions
        ARM: 5815/1: SA1100: h3100/h3600: remove now unused assign_h3600_egpio handlers
        ARM: 5814/1: SA1100: h3100/h3600: convert all users of assign_h3600_egpio to gpiolib
        ARM: 5813/1: SA1100: h3100/h3600: add htc-egpio driver
        ARM: 5812/1: SA1100: h3100/h3600: separate machine-specific LCD helpers
        ARM: 5811/2: pcmcia: convert sa1100_h3600 driver to gpiolib
        ARM: 5799/1: SA1100: h3600: stop setting direction for LCD pins
        ARM: 5798/1: SA1100: h3600: remove unused cruft from h3600.h
        ...
      79c9601c
    • L
      Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging · 41440ffe
      Linus Torvalds 提交于
      * 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
        i2c-stub: Documentation update
        i2c-stub: Allow user to disable some commands
        i2c-stub: Implement I2C block support
        i2c: Refactor for_each callbacks
        i2c-i801: Retry on lost arbitration
        i2c: Remove big kernel lock from i2cdev_open
        ics932s401: Clean up detect function
        i2c: Simplify i2c_detect_address
        i2c: Drop probe, ignore and force module parameters
        i2c: Add missing __devinit markers to old i2c adapter drivers
        i2c: Bus drivers don't have to support I2C_M_REV_DIR_ADDR
        i2c: Prevent priority inversion on top of bus lock
        i2c-voodoo3: Delete
        i2c-powermac: Drop temporary name buffer
        i2c-powermac: Include the i2c_adapter in struct pmac_i2c_bus
        i2c-powermac: Log errors
        i2c-powermac: Refactor i2c_powermac_smbus_xfer
        i2c-powermac: Reject unsupported I2C transactions
        i2c/chips: Move ds1682 to drivers/misc
      41440ffe
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6 · dad3de7d
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
        PM: Add flag for devices capable of generating run-time wake-up events
        PM / Runtime: Remove unnecessary braces in __pm_runtime_set_status()
        PM / Runtime: Make documentation of runtime_idle() agree with the code
        PM / Runtime: Ensure timer_expires is nonzero in pm_schedule_suspend()
        PM / Runtime: Use deferred_resume flag in pm_request_resume
        PM / Runtime: Export the PM runtime workqueue
        PM / Runtime: Fix lockdep warning in __pm_runtime_set_status()
        PM / Hibernate: Swap, use KERN_CONT
        PM / Hibernate: Shift remaining code from swsusp.c to hibernate.c
        PM / Hibernate: Move swap functions to kernel/power/swap.c.
        PM / freezer: Don't get over-anxious while waiting
      dad3de7d
    • L
      Merge branch 'kvm-updates/2.6.33' of git://git.kernel.org/pub/scm/virt/kvm/kvm · ed9216c1
      Linus Torvalds 提交于
      * 'kvm-updates/2.6.33' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (84 commits)
        KVM: VMX: Fix comparison of guest efer with stale host value
        KVM: s390: Fix prefix register checking in arch/s390/kvm/sigp.c
        KVM: Drop user return notifier when disabling virtualization on a cpu
        KVM: VMX: Disable unrestricted guest when EPT disabled
        KVM: x86 emulator: limit instructions to 15 bytes
        KVM: s390: Make psw available on all exits, not just a subset
        KVM: x86: Add KVM_GET/SET_VCPU_EVENTS
        KVM: VMX: Report unexpected simultaneous exceptions as internal errors
        KVM: Allow internal errors reported to userspace to carry extra data
        KVM: Reorder IOCTLs in main kvm.h
        KVM: x86: Polish exception injection via KVM_SET_GUEST_DEBUG
        KVM: only clear irq_source_id if irqchip is present
        KVM: x86: disallow KVM_{SET,GET}_LAPIC without allocated in-kernel lapic
        KVM: x86: disallow multiple KVM_CREATE_IRQCHIP
        KVM: VMX: Remove vmx->msr_offset_efer
        KVM: MMU: update invlpg handler comment
        KVM: VMX: move CR3/PDPTR update to vmx_set_cr3
        KVM: remove duplicated task_switch check
        KVM: powerpc: Fix BUILD_BUG_ON condition
        KVM: VMX: Use shared msr infrastructure
        ...
      
      Trivial conflicts due to new Kconfig options in arch/Kconfig and kernel/Makefile
      ed9216c1
  2. 08 12月, 2009 21 次提交