1. 20 8月, 2009 1 次提交
  2. 19 8月, 2009 19 次提交
  3. 18 8月, 2009 14 次提交
    • T
      genirq: Wake up irq thread after action has been installed · 69ab8494
      Thomas Gleixner 提交于
      The wake_up_process() of the new irq thread in __setup_irq() is too
      early as the irqaction is not yet fully initialized especially
      action->irq is not yet set. The interrupt thread might dereference the
      wrong irq descriptor.
      
      Move the wakeup after the action is installed and action->irq has been
      set.
      Reported-by: NMichael Buesch <mb@bu3sch.de>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Tested-by: NMichael Buesch <mb@bu3sch.de>
      69ab8494
    • I
      perf annotate: Fix segmentation fault · 15f3fa4e
      Ingo Molnar 提交于
      Linus reported this perf annotate segfault:
      
              [torvalds@nehalem git]$ perf annotate unmap_vmas
              Segmentation fault
      
             	#0  map__clone (self=<value optimized out>) at builtin-annotate.c:236
             	#1  thread__fork (self=<value optimized out>) at builtin-annotate.c:372
      
      The bug here was that builtin-annotate.c was a copy of
      builtin-report.c and a threading related fix to builtin-report.c
      didnt get propagated to builtin-annotate.c ...
      Reported-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      15f3fa4e
    • I
      perf_counter: Fix the PARISC build · f738eb1b
      Ingo Molnar 提交于
      PARISC does not build:
      
      /home/mingo/tip/kernel/perf_counter.c: In function 'perf_counter_index':
      /home/mingo/tip/kernel/perf_counter.c:2016: error: 'PERF_COUNTER_INDEX_OFFSET' undeclared (first use in this function)
      /home/mingo/tip/kernel/perf_counter.c:2016: error: (Each undeclared identifier is reported only once
      /home/mingo/tip/kernel/perf_counter.c:2016: error: for each function it appears in.)
      
      As PERF_COUNTER_INDEX_OFFSET is not defined.
      
      Now, we could define it in the architecture - but lets also provide
      a core default of 0 (which happens to be what all but one
      architecture uses at the moment).
      
      Architectures that need a different index offset should set this
      value in their asm/perf_counter.h files.
      
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Helge Deller <deller@gmx.de>
      Cc: linux-parisc@vger.kernel.org
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f738eb1b
    • E
      net: restore gnet_stats_basic to previous definition · c1a8f1f1
      Eric Dumazet 提交于
      In 5e140dfc "net: reorder struct Qdisc
      for better SMP performance" the definition of struct gnet_stats_basic
      changed incompatibly, as copies of this struct are shipped to
      userland via netlink.
      
      Restoring old behavior is not welcome, for performance reason.
      
      Fix is to use a private structure for kernel, and
      teach gnet_stats_copy_basic() to convert from kernel to user land,
      using legacy structure (struct gnet_stats_basic)
      
      Based on a report and initial patch from Michael Spang.
      Reported-by: NMichael Spang <mspang@csclub.uwaterloo.ca>
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c1a8f1f1
    • R
      NETROM: Fix use of static buffer · c6ba973b
      Ralf Baechle 提交于
      The static variable used by nr_call_to_digi might result in corruption if
      multiple threads are trying to usee a node or neighbour via ioctl.  Fixed
      by having the caller pass a structure in.  This is safe because nr_add_node
      rsp. nr_add_neigh will allocate a permanent structure, if needed.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c6ba973b
    • N
      Fix new incorrect error return from do_md_stop. · 80ffb3cc
      NeilBrown 提交于
      Recent commit c8c00a69
      changed the exit paths in do_md_stop and was not quite
      careful enough.  There is one path were 'err' now needs
      to be cleared but it isn't.
      So setting an array to readonly (with mdadm --readonly) will
      work, but will incorrectly report and error: ENXIO.
      Signed-off-by: NNeilBrown <neilb@suse.de>
      80ffb3cc
    • L
      Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus · df4ecf15
      Linus Torvalds 提交于
      * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
        MIPS: Fix HPAGE_SIZE redefinition
      df4ecf15
    • L
      Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs · c58afec8
      Linus Torvalds 提交于
      * 'for-linus' of git://oss.sgi.com/xfs/xfs:
        xfs: fix locking in xfs_iget_cache_hit
      c58afec8
    • L
      Merge branch 'for-linus' of... · 52dec22e
      Linus Torvalds 提交于
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6:
        security: define round_hint_to_min in !CONFIG_SECURITY
        Security/SELinux: seperate lsm specific mmap_min_addr
        SELinux: call cap_file_mmap in selinux_file_mmap
        Capabilities: move cap_file_mmap to commoncap.c
      52dec22e
    • E
      inotify: start watch descriptor count at 1 · 08e53fcb
      Eric Paris 提交于
      The inotify_add_watch man page specifies that inotify_add_watch() will
      return a non-negative integer.  However, historically the inotify
      watches started at 1, not at 0.
      
      Turns out that the inotifywait program provided by the inotify-tools
      package doesn't properly handle a 0 watch descriptor.  In 7e790dd5 we
      changed from starting at 1 to starting at 0.  This patch starts at 1,
      just like in previous kernels, but also just like in previous kernels
      it's possible for it to wrap back to 0.  This preserves the kernel
      functionality exactly like it was before the patch (neither method broke
      the spec)
      Signed-off-by: NEric Paris <eparis@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      08e53fcb
    • E
      inotify: tail drop inotify q_overflow events · cd94c8bb
      Eric Paris 提交于
      In f44aebcc the tail drop logic of events with no file backing
      (q_overflow and in_ignored) was reversed so IN_IGNORED events would
      never be tail dropped.  This now means that Q_OVERFLOW events are NOT
      tail dropped.  The fix is to not tail drop IN_IGNORED, but to tail drop
      Q_OVERFLOW.
      Signed-off-by: NEric Paris <eparis@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cd94c8bb
    • E
      notify: unused event private race · eef3a116
      Eric Paris 提交于
      inotify decides if private data it passed to get added to an event was
      used by checking list_empty().  But it's possible that the event may
      have been dequeued and the private event removed so it would look empty.
      
      The fix is to use the return code from fsnotify_add_notify_event rather
      than looking at the list.
      Signed-off-by: NEric Paris <eparis@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      eef3a116
    • L
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · 0f66f96d
      Linus Torvalds 提交于
      * master.kernel.org:/home/rmk/linux-2.6-arm: (37 commits)
        ARM: 5673/1: U300 fix initsection compile warning
        ARM: Fix broken highmem support
        mx31moboard: invert sdhc ro signal sense
        ARM: S3C24XX: Fix clkout mpx error
        ARM: S3C64XX: serial: Fix a typo in Kconfig
        IXP4xx: Fix IO_SPACE_LIMIT for 2.6.31-rc core PCI changes
        OMAP3: RX51: Updated rx51_defconfig
        OMAP2/3: mmc-twl4030: Free up MMC regulators while cleaning up
        OMAP3: RX51: Define TWL4030 USB transceiver in board file
        OMAP3: Overo: Fix smsc911x platform device resource value
        OMAP3: Fix omap3 sram virtual addres overlap vmalloc space after increasing vmalloc size
        OMAP2/3: DMA errata correction
        OMAP: Fix testing of cpu defines for mach-omap1
        OMAP3: Overo: add missing pen-down GPIO definition
        OMAP: GPIO: clear/restore level/edge detect settings on mask/unmask
        OMAP3: PM: Fix wrong sequence in suspend.
        OMAP: PM: CPUfreq: obey min/max settings of policy
        OMAP2/3/4: UART: allow in-order port traversal
        OMAP2/3/4: UART: Allow per-UART disabling wakeup for serial ports
        OMAP3: Fixed crash bug with serial + suspend
        ...
      0f66f96d
    • A
      MIPS: Fix HPAGE_SIZE redefinition · 87c62a66
      Atsushi Nemoto 提交于
      This patch fixes warnings like this:
        CC      fs/proc/meminfo.o
      In file included from /work/linux/include/linux/mmzone.h:20,
                       from /work/linux/include/linux/gfp.h:4,
                       from /work/linux/include/linux/mm.h:8,
                       from /work/linux/fs/proc/meminfo.c:5:
      /work/linux/arch/mips/include/asm/page.h:36:1: warning: "HPAGE_SIZE" redefined
      In file included from /work/linux/fs/proc/meminfo.c:2:
      /work/linux/include/linux/hugetlb.h:107:1: warning: this is the location of the previous definition
      Signed-off-by: NAtsushi Nemoto <anemo@mba.ocn.ne.jp>
      Acked-by: NDavid Daney <ddaney@caviumnetworks.com>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      87c62a66
  4. 17 8月, 2009 6 次提交
    • I
      x86, mce: Don't initialize MCEs on unknown CPUs · e412cd25
      Ingo Molnar 提交于
      An older test-box started hanging at the following point during
      bootup:
      
       [    0.022996] Mount-cache hash table entries: 512
       [    0.024996] Initializing cgroup subsys debug
       [    0.025996] Initializing cgroup subsys cpuacct
       [    0.026995] Initializing cgroup subsys devices
       [    0.027995] Initializing cgroup subsys freezer
       [    0.028995] mce: CPU supports 5 MCE banks
      
      I've bisected it down to commit 4efc0670 ("x86, mce: use 64bit
      machine check code on 32bit"), which utilizes the MCE code on
      32-bit systems too.
      
      The problem is caused by this detail in my config:
      
        # CONFIG_CPU_SUP_INTEL is not set
      
      This disables the quirks in mce_cpu_quirks() but still enables
      MCE support - which then hangs due to the missing quirk
      workaround needed on this CPU:
      
      	if (c->x86 == 6 && c->x86_model < 0x1A && banks > 0)
      		mce_banks[0].init = 0;
      
      The safe solution is to not initialize MCEs if we dont know on
      what CPU we are running (or if that CPU's support code got
      disabled in the config).
      
      Also be a bit more defensive on 32-bit systems: dont do a
      boot-time dump of pending MCEs not just on the specific system
      that we found a problem with (Pentium-M), but earlier ones as
      well.
      
      Now this problem is probably not common and disabling CPU
      support is rare - but still being more defensive in something
      we turned on for a wide range of CPUs is prudent.
      
      Cc: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      LKML-Reference: Message-ID: <4A88E3E4.40506@jp.fujitsu.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e412cd25
    • P
      perf_counter: Check task on counter read IPI · e1ac3614
      Paul Mackerras 提交于
      In general, code in perf_counter.c that is called through an
      IPI checks, for per-task counters, that the counter's task is
      still the current task.  This is to handle the race condition
      where the cpu switches from the task we want to another task in
      the interval between sending the IPI and the IPI arriving and
      being handled on the target CPU.
      
      For some reason, __perf_counter_read is missing this check, yet
      there is no reason why the race condition can't occur.  This
      adds a check that the current task is the one we want.  If it
      isn't, we just return.  In that case the counter->count value
      should be up to date, since it will have been updated when the
      counter was scheduled out, which must have happened since the
      IPI was sent.
      
      I don't have an example of an actual failure due to this race,
      but it seems obvious that it could occur and we need to guard
      against it.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <19076.63614.277861.368125@drongo.ozlabs.ibm.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e1ac3614
    • C
      perf: Rename perf-examples.txt to examples.txt · 2932cffc
      Carlos R. Mafra 提交于
      Rename it to examples.txt to avoid the perf-*.txt pattern in
      the Makefile, otherwise 'make doc' fails because
      perf-examples.txt is not formatted to be a man page:
      
       ERROR: perf-examples.txt: line 1: manpage document title is mandatory
      Signed-off-by: NCarlos R. Mafra <crmafra@gmail.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2932cffc
    • B
      x86, mce: don't log boot MCEs on Pentium M (model == 13) CPUs · c7f6fa44
      Bartlomiej Zolnierkiewicz 提交于
      On my legacy Pentium M laptop (Acer Extensa 2900) I get bogus MCE on a cold
      boot with CONFIG_X86_NEW_MCE enabled, i.e. (after decoding it with mcelog):
      
      MCE 0
      HARDWARE ERROR. This is *NOT* a software problem!
      Please contact your hardware vendor
      CPU 0 BANK 1 MCG status:
      MCi status:
      Error overflow
      Uncorrected error
      Error enabled
      Processor context corrupt
      MCA: Data CACHE Level-1 UNKNOWN Error
      STATUS f200000000000195 MCGSTATUS 0
      
      [ The other STATUS values observed: f2000000000001b5 (... UNKNOWN error)
        and f200000000000115 (... READ Error).
      
        To verify that this is not a CONFIG_X86_NEW_MCE bug I also modified
        the CONFIG_X86_OLD_MCE code (which doesn't log any MCEs) to dump
        content of STATUS MSR before it is cleared during initialization. ]
      
      Since the bogus MCE results in a kernel taint (which in turn disables
      lockdep support) don't log boot MCEs on Pentium M (model == 13) CPUs
      by default ("mce=bootlog" boot parameter can be be used to get the old
      behavior).
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      Reviewed-by: NAndi Kleen <andi@firstfloor.org>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c7f6fa44
    • C
      xfs: fix locking in xfs_iget_cache_hit · bc990f5c
      Christoph Hellwig 提交于
      The locking in xfs_iget_cache_hit currently has numerous problems:
      
       - we clear the reclaim tag without i_flags_lock which protects
         modifications to it
       - we call inode_init_always which can sleep with pag_ici_lock
         held (this is oss.sgi.com BZ #819)
       - we acquire and drop i_flags_lock a lot and thus provide no
         consistency between the various flags we set/clear under it
      
      This patch fixes all that with a major revamp of the locking in
      the function.  The new version acquires i_flags_lock early and
      only drops it once we need to call into inode_init_always or before
      calling xfs_ilock.
      
      This patch fixes a bug seen in the wild where we race modifying the
      reclaim tag.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NFelix Blyakher <felixb@sgi.com>
      Reviewed-by: NEric Sandeen <sandeen@sandeen.net>
      Signed-off-by: NFelix Blyakher <felixb@sgi.com>
      bc990f5c
    • E
      security: define round_hint_to_min in !CONFIG_SECURITY · 1d995973
      Eric Paris 提交于
      Fix the header files to define round_hint_to_min() and to define
      mmap_min_addr_handler() in the !CONFIG_SECURITY case.
      
      Built and tested with !CONFIG_SECURITY
      Signed-off-by: NEric Paris <eparis@redhat.com>
      Signed-off-by: NJames Morris <jmorris@namei.org>
      1d995973