1. 25 5月, 2011 2 次提交
    • V
      igmp: call ip_mc_clear_src() only when we have no users of ip_mc_list · 24cf3af3
      Veaceslav Falico 提交于
      In igmp_group_dropped() we call ip_mc_clear_src(), which resets the number
      of source filters per mulitcast. However, igmp_group_dropped() is also
      called on NETDEV_DOWN, NETDEV_PRE_TYPE_CHANGE and NETDEV_UNREGISTER, which
      means that the group might get added back on NETDEV_UP, NETDEV_REGISTER and
      NETDEV_POST_TYPE_CHANGE respectively, leaving us with broken source
      filters.
      
      To fix that, we must clear the source filters only when there are no users
      in the ip_mc_list, i.e. in ip_mc_dec_group() and on device destroy.
      Acked-by: NDavid L Stevens <dlstevens@us.ibm.com>
      Signed-off-by: NVeaceslav Falico <vfalico@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      24cf3af3
    • E
      net: use synchronize_rcu_expedited() · be3fc413
      Eric Dumazet 提交于
      synchronize_rcu() is very slow in various situations (HZ=100,
      CONFIG_NO_HZ=y, CONFIG_PREEMPT=n)
      
      Extract from my (mostly idle) 8 core machine :
      
       synchronize_rcu() in 99985 us
       synchronize_rcu() in 79982 us
       synchronize_rcu() in 87612 us
       synchronize_rcu() in 79827 us
       synchronize_rcu() in 109860 us
       synchronize_rcu() in 98039 us
       synchronize_rcu() in 89841 us
       synchronize_rcu() in 79842 us
       synchronize_rcu() in 80151 us
       synchronize_rcu() in 119833 us
       synchronize_rcu() in 99858 us
       synchronize_rcu() in 73999 us
       synchronize_rcu() in 79855 us
       synchronize_rcu() in 79853 us
      
      When we hold RTNL mutex, we would like to spend some cpu cycles but not
      block too long other processes waiting for this mutex.
      
      We also want to setup/dismantle network features as fast as possible at
      boot/shutdown time.
      
      This patch makes synchronize_net() call the expedited version if RTNL is
      locked.
      
      synchronize_rcu_expedited() typical delay is about 20 us on my machine.
      
       synchronize_rcu_expedited() in 18 us
       synchronize_rcu_expedited() in 18 us
       synchronize_rcu_expedited() in 18 us
       synchronize_rcu_expedited() in 18 us
       synchronize_rcu_expedited() in 20 us
       synchronize_rcu_expedited() in 16 us
       synchronize_rcu_expedited() in 20 us
       synchronize_rcu_expedited() in 18 us
       synchronize_rcu_expedited() in 18 us
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      CC: Ben Greear <greearb@candelatech.com>
      Reviewed-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      be3fc413
  2. 24 5月, 2011 16 次提交
    • D
      net: convert %p usage to %pK · 71338aa7
      Dan Rosenberg 提交于
      The %pK format specifier is designed to hide exposed kernel pointers,
      specifically via /proc interfaces.  Exposing these pointers provides an
      easy target for kernel write vulnerabilities, since they reveal the
      locations of writable structures containing easily triggerable function
      pointers.  The behavior of %pK depends on the kptr_restrict sysctl.
      
      If kptr_restrict is set to 0, no deviation from the standard %p behavior
      occurs.  If kptr_restrict is set to 1, the default, if the current user
      (intended to be a reader via seq_printf(), etc.) does not have CAP_SYSLOG
      (currently in the LSM tree), kernel pointers using %pK are printed as 0's.
       If kptr_restrict is set to 2, kernel pointers using %pK are printed as
      0's regardless of privileges.  Replacing with 0's was chosen over the
      default "(null)", which cannot be parsed by userland %p, which expects
      "(nil)".
      
      The supporting code for kptr_restrict and %pK are currently in the -mm
      tree.  This patch converts users of %p in net/ to %pK.  Cases of printing
      pointers to the syslog are not covered, since this would eliminate useful
      information for postmortem debugging and the reading of the syslog is
      already optionally protected by the dmesg_restrict sysctl.
      Signed-off-by: NDan Rosenberg <drosenberg@vsecurity.com>
      Cc: James Morris <jmorris@namei.org>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: Thomas Graf <tgraf@infradead.org>
      Cc: Eugene Teo <eugeneteo@kernel.org>
      Cc: Kees Cook <kees.cook@canonical.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Eric Paris <eparis@parisplace.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      71338aa7
    • M
      net/irda: convert bfin_sir to common Blackfin UART header · 229de618
      Mike Frysinger 提交于
      No need to duplicate these defines now that the common Blackfin code has
      unified these for all UART devices.
      Signed-off-by: NMike Frysinger <vapier@gentoo.org>
      Cc: Samuel Ortiz <samuel@sortiz.org>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      229de618
    • D
      ipv6: Fix return of xfrm6_tunnel_rcv() · 6ac3f664
      David S. Miller 提交于
      Like ipv4, just return xfrm6_rcv_spi()'s return value directly.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6ac3f664
    • J
      net: filter: Use WARN_RATELIMIT · 6c4a5cb2
      Joe Perches 提交于
      A mis-configured filter can spam the logs with lots of stack traces.
      
      Rate-limit the warnings and add printout of the bogus filter information.
      Original-patch-by: NBen Greear <greearb@candelatech.com>
      Signed-off-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6c4a5cb2
    • J
      bug.h: Add WARN_RATELIMIT · b3eec79b
      Joe Perches 提交于
      Add a generic mechanism to ratelimit WARN(foo, fmt, ...) messages
      using a hidden per call site static struct ratelimit_state.
      
      Also add an __WARN_RATELIMIT variant to be able to use a specific
      struct ratelimit_state.
      Signed-off-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b3eec79b
    • E
      sch_sfq: avoid giving spurious NET_XMIT_CN signals · 8efa8854
      Eric Dumazet 提交于
      While chasing a possible net_sched bug, I found that IP fragments have
      litle chance to pass a congestioned SFQ qdisc :
      
      - Say SFQ qdisc is full because one flow is non responsive.
      - ip_fragment() wants to send two fragments belonging to an idle flow.
      - sfq_enqueue() queues first packet, but see queue limit reached :
      - sfq_enqueue() drops one packet from 'big consumer', and returns
      NET_XMIT_CN.
      - ip_fragment() cancel remaining fragments.
      
      This patch restores fairness, making sure we return NET_XMIT_CN only if
      we dropped a packet from the same flow.
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Patrick McHardy <kaber@trash.net>
      CC: Jarek Poplawski <jarkao2@gmail.com>
      CC: Jamal Hadi Salim <hadi@cyberus.ca>
      CC: Stephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8efa8854
    • B
      ehea: Fix multicast registration on semi-promiscuous mode · a4910b74
      Breno Leitao 提交于
      Ehea will not register multicast groups in phyp if the physical
      interface is in promiscuous mode. But it should register if the
      logical port is in promiscuous mode, but the physical port is not.
      
      Ehea physical promiscuous mode is defined by ehea_port->promisc,
      while logical port is defined by IFF_PROMISC.
      
      So currently, if the user set the interface in promiscuous mode,
      IGMP will not be registred in PHYP, and PHYP will never pass
      the multicast packet to the logical port, which is bad
      
      So, this patch just fixes it, assuring that we register in phyp
      if the physical port is not on promiscuous mode.
      Signed-off-by: NBreno Leitao <leitao@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a4910b74
    • E
      snap: remove one synchronize_net() · 418f275e
      Eric Dumazet 提交于
      No need to wait for a rcu grace period after list insertion.
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      418f275e
    • E
      net: ping: cleanups ping_v4_unhash() · 19a76fa9
      Eric Dumazet 提交于
      net/ipv4/ping.c: In function ‘ping_v4_unhash’:
      net/ipv4/ping.c:140:28: warning: variable ‘hslot’ set but not used
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Vasiliy Kulikov <segoon@openwall.com>
      Acked-by: NVasiliy Kulikov <segoon@openwall.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      19a76fa9
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6 · 4867faab
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
        slub: Deal with hyperthetical case of PAGE_SIZE > 2M
        slub: Remove node check in slab_free
        slub: avoid label inside conditional
        slub: Make CONFIG_DEBUG_PAGE_ALLOC work with new fastpath
        slub: Avoid warning for !CONFIG_SLUB_DEBUG
        slub: Remove CONFIG_CMPXCHG_LOCAL ifdeffery
        slub: Move debug handlign in __slab_free
        slub: Move node determination out of hotpath
        slub: Eliminate repeated use of c->page through a new page variable
        slub: get_map() function to establish map of free objects in a slab
        slub: Use NUMA_NO_NODE in get_partial
        slub: Fix a typo in config name
      4867faab
    • P
      Merge branch 'slab/next' into for-linus · bfb91fb6
      Pekka Enberg 提交于
      Conflicts:
      	mm/slub.c
      bfb91fb6
    • L
      Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging · 6fad2b5b
      Linus Torvalds 提交于
      * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging:
        hwmon: (coretemp) Fix checkpatch errors
        hwmon: Remove pkgtemp driver
        hwmon: (coretemp) Merge pkgtemp with coretemp
        hwmon: (pmbus) Add support for Analog Devices ADM1275
        hwmon: (pmbus) Support for TI UCD90xxx series Sequencer and System Health Controllers
        hwmon: (pmbus) Add support for TI UCD9200 series of PWM System Controllers
        hwmon: (pmbus) Use device specific function to read fan configuration
        hwmon: (pmbus) Expand scope of device specific get_status function
        hwmon: (pmbus) Introduce infrastructure to detect sensors and limit registers
        hwmon: Driver for MAX16065 System Manager and compatibles
        hwmon: (sht15) add support for CRC validation
        hwmon: (sht15) add support for the status register
        hwmon: (sht15) clean-up the probe function
        hwmon: (sht15) general code clean-up
        hwmon: Add support for MAX6642
      6fad2b5b
    • L
      Merge branch 'perf-urgent-for-linus' of... · 19504828
      Linus Torvalds 提交于
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        perf tools: Fix sample size bit operations
        perf tools: Fix ommitted mmap data update on remap
        watchdog: Change the default timeout and configure nmi watchdog period based on watchdog_thresh
        watchdog: Disable watchdog when thresh is zero
        watchdog: Only disable/enable watchdog if neccessary
        watchdog: Fix rounding bug in get_sample_period()
        perf tools: Propagate event parse error handling
        perf tools: Robustify dynamic sample content fetch
        perf tools: Pre-check sample size before parsing
        perf tools: Move evlist sample helpers to evlist area
        perf tools: Remove junk code in mmap size handling
        perf tools: Check we are able to read the event size on mmap
      19504828
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · 57d19e80
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
        b43: fix comment typo reqest -> request
        Haavard Skinnemoen has left Atmel
        cris: typo in mach-fs Makefile
        Kconfig: fix copy/paste-ism for dell-wmi-aio driver
        doc: timers-howto: fix a typo ("unsgined")
        perf: Only include annotate.h once in tools/perf/util/ui/browsers/annotate.c
        md, raid5: Fix spelling error in comment ('Ofcourse' --> 'Of course').
        treewide: fix a few typos in comments
        regulator: change debug statement be consistent with the style of the rest
        Revert "arm: mach-u300/gpio: Fix mem_region resource size miscalculations"
        audit: acquire creds selectively to reduce atomic op overhead
        rtlwifi: don't touch with treewide double semicolon removal
        treewide: cleanup continuations and remove logging message whitespace
        ath9k_hw: don't touch with treewide double semicolon removal
        include/linux/leds-regulator.h: fix syntax in example code
        tty: fix typo in descripton of tty_termios_encode_baud_rate
        xtensa: remove obsolete BKL kernel option from defconfig
        m68k: fix comment typo 'occcured'
        arch:Kconfig.locks Remove unused config option.
        treewide: remove extra semicolons
        ...
      57d19e80
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · ee9ec4f8
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (36 commits)
        HID: hid-multitouch: cosmetic changes, sort classes and devices
        HID: hid-multitouch: class MT_CLS_STANTUM is redundant with MT_CLS_CONFIDENCE
        HID: hid-multitouch: add support for Unitec panels
        HID: hid-multitouch: add support for Touch International panels
        HID: hid-multitouch: add support for GoodTouch panels
        HID: hid-multitouch: add support for CVTouch panels
        HID: hid-multitouch: add support for ActionStar panels
        HID: hiddev: fix race between hiddev_disconnect and hiddev_release
        HID: magicmouse: ignore 'ivalid report id' while switching modes
        HID: fix a crash in hid_report_raw_event() function.
        HID: hid-multitouch: add support for Elo TouchSystems 2515 IntelliTouch Plus
        HID: assorted usage updates from hut 1.12
        HID: roccat: fix actual/startup profile sysfs attribute in koneplus
        HID: hid-multitouch: Add support for Lumio panels
        HID: 'name' and 'phys' in 'struct hid_device' can never be NULL
        HID: hid-multitouch: add support for Ilitek dual-touch panel
        HID: picolcd: Avoid compile warning/error triggered by copy_from_user()
        HID: add support for Logitech G27 wheel
        HID: hiddev: fix error path in hiddev_read when interrupted
        HID: add support for Sony Navigation Controller
        ...
      ee9ec4f8
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/apm · e0c6b8a1
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/apm:
        apm-emulation: apm_mutex breaks ACK; remove it
        APM: take over maintainership
      e0c6b8a1
  3. 23 5月, 2011 22 次提交