1. 05 4月, 2008 20 次提交
    • C
      ipmi: change device node ordering to reflect probe order · abd24df8
      Carol Hebert 提交于
      In 2.6.14 a patch was merged which switching the order of the ipmi device
      naming from in-order-of-discovery over to reverse-order-of-discovery.
      
      So on systems with multiple BMC interfaces, the ipmi device names are being
      created in reverse order relative to how they are discovered on the system
      (e.g.  on an IBM x3950 multinode server with N nodes, the device name for the
      BMC in the first node is /dev/ipmiN-1 and the device name for the BMC in the
      last node is /dev/ipmi0, etc.).
      
      The problem is caused by the list handling routines chosen in dmi_scan.c.
      Using list_add() causes the multiple ipmi devices to be added to the device
      list using a stack-paradigm and so the ipmi driver subsequently pulls them off
      during initialization in LIFO order.  This patch changes the
      dmi_save_ipmi_device() list handling paradigm to a queue, thereby allowing the
      ipmi driver to build the ipmi device names in the order in which they are
      found on the system.
      Signed-off-by: NCarol Hebert <cah@us.ibm.com>
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      abd24df8
    • A
      mtd: fix broken state in CFI driver caused by FL_SHUTDOWN · fb6d080c
      Alexey Korolev 提交于
      THe CFI driver in 2.6.24 kernel is broken.  Not so intensive read/write
      operations cause incomplete writes which lead to kernel panics in JFFS2.
      
      We investigated the issue - it is caused by bug in FL_SHUTDOWN parsing code.
      Sometimes chip returns -EIO as if it is in FL_SHUTDOWN state when it should
      wait in FL_PONT (error in order of conditions).
      
      The following patch fixes the bug in state parsing code of CFI.  Also I've
      added comments to notify developers if they want to add new case in future.
      Signed-off-by: NAlexey Korolev <akorolev@infradead.org>
      Reviewed-by: NJoern Engel <joern@logfs.org>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fb6d080c
    • B
      memory controller: make memory resource control aware of boot options · 4077960e
      Balbir Singh 提交于
      A boot option for the memory controller was discussed on lkml.  It is a good
      idea to add it, since it saves memory for people who want to turn off the
      memory controller.
      
      By default the option is on for the following two reasons:
      
      1. It provides compatibility with the current scheme where the memory
         controller turns on if the config option is enabled
      2. It allows for wider testing of the memory controller, once the config
         option is enabled
      
      We still allow the create, destroy callbacks to succeed, since they are not
      aware of boot options.  We do not populate the directory will memory resource
      controller specific files.
      Signed-off-by: NBalbir Singh <balbir@linux.vnet.ibm.com>
      Cc: Paul Menage <menage@google.com>
      Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
      Cc: Pavel Emelyanov <xemul@openvz.org>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Hugh Dickins <hugh@veritas.com>
      Cc: Sudhir Kumar <skumar@linux.vnet.ibm.com>
      Cc: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
      Cc: David Rientjes <rientjes@google.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4077960e
    • P
      cgroups: add cgroup support for enabling controllers at boot time · 8bab8dde
      Paul Menage 提交于
      The effects of cgroup_disable=foo are:
      
      - foo isn't auto-mounted if you mount all cgroups in a single hierarchy
      - foo isn't visible as an individually mountable subsystem
      
      As a result there will only ever be one call to foo->create(), at init time;
      all processes will stay in this group, and the group will never be mounted on
      a visible hierarchy.  Any additional effects (e.g.  not allocating metadata)
      are up to the foo subsystem.
      
      This doesn't handle early_init subsystems (their "disabled" bit isn't set be,
      but it could easily be extended to do so if any of the early_init systems
      wanted it - I think it would just involve some nastier parameter processing
      since it would occur before the command-line argument parser had been run.
      
      Hugh said:
      
        Ballpark figures, I'm trying to get this question out rather than
        processing the exact numbers: CONFIG_CGROUP_MEM_RES_CTLR adds 15% overhead
        to the affected paths, booting with cgroup_disable=memory cuts that back to
        1% overhead (due to slightly bigger struct page).
      
        I'm no expert on distros, they may have no interest whatever in
        CONFIG_CGROUP_MEM_RES_CTLR=y; and the rest of us can easily build with or
        without it, or apply the cgroup_disable=memory patches.
      
      Unix bench's execl test result on x86_64 was
      
      == just after boot without mounting any cgroup fs.==
      mem_cgorup=off : Execl Throughput       43.0     3150.1      732.6
      mem_cgroup=on  : Execl Throughput       43.0     2932.6      682.0
      ==
      
      [lizf@cn.fujitsu.com: fix boot option parsing]
      Signed-off-by: NBalbir Singh <balbir@linux.vnet.ibm.com>
      Cc: Paul Menage <menage@google.com>
      Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
      Cc: Pavel Emelyanov <xemul@openvz.org>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Hugh Dickins <hugh@veritas.com>
      Cc: Sudhir Kumar <skumar@linux.vnet.ibm.com>
      Cc: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
      Cc: David Rientjes <rientjes@google.com>
      Signed-off-by: NLi Zefan <lizf@cn.fujitsu.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8bab8dde
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86 · 3a143125
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:
        x86: revert assign IRQs to hpet timer
        x86: tsc prevent time going backwards
        xen: Clear PG_pinned in release_{pt,pd}()
        xen: Do not pin/unpin PMD pages
        xen: refactor xen_{alloc,release}_{pt,pd}()
        x86, agpgart: scary messages are fortunately obsolete
        xen: fix grant table bug
        x86: fix breakage of vSMP irq operations
        x86: print message if nmi_watchdog=2 cannot be enabled
        x86: fix nmi_watchdog=2 on Pentium-D CPUs
      3a143125
    • G
      m68k: update defconfigs for 2.6.25 · a1aa758d
      Geert Uytterhoeven 提交于
      Long overdue update of the m68k defconfigs
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a1aa758d
    • A
      m68k: use KBUILD_DEFCONFIG · ef85ecbf
      Adrian Bunk 提交于
      The default defconfig should be one from arch/m68k/configs/
      
      arch/m68k/defconfig was not exactly identical to amiga_defconfig but
      also considering how long they have been without any update that doesn't
      seem to have been on purpose.
      Signed-off-by: NAdrian Bunk <adrian.bunk@movial.fi>
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ef85ecbf
    • L
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 7a5ac8de
      Linus Torvalds 提交于
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        pata_ali: disable ATAPI DMA
        libata: ATA_12/16 doesn't fall into ATAPI_MISC
        libata: uninline atapi_cmd_type()
        libata: fix IDENTIFY order in ata_bus_probe()
      7a5ac8de
    • L
      Be more careful about marking buffers dirty · 1be62dc1
      Linus Torvalds 提交于
      Mikulas Patocka noted that the optimization where we check if a buffer
      was already dirty (and we avoid re-dirtying it) was not really SMP-safe.
      
      Since the read of the old status was not synchronized with anything, an
      aggressive CPU re-ordering of memory accesses might have moved that read
      up to before the data was even written to the buffer, and another CPU
      that cleaned it again, causing the newly dirty state to never actually
      hit the disk.
      
      Admittedly this would probably never trigger in practice, but it's still
      wrong.
      
      Mikulas sent a patch that fixed the problem, but I dislike the subtlety
      of the whole optimization, so this is an alternate fix that is more
      explicit about the particular SMP ordering for the optimization, and
      separates out the speculative reads of the buffer state into its own
      conditional (and makes the memory barrier only happen if we are likely
      to actually hit the optimized case in the first place).
      
      I considered removing the optimization entirely, but Andrew argued for
      it's continued existence. I'm a push-over.
      
      Cc: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1be62dc1
    • L
      parport_pc: make sure to release IO ports after probing for IT87XX · 4ed91901
      Linus Torvalds 提交于
      Commit f63fd7e2 ("parport_pc: detection
      for SuperIO IT87XX POST") only released the IO port region on success,
      not when the probe for the IT87XX chip failed.
      
      That caused not only a reserved region to leak, but also caused an oops
      when the driver module was unloaded and somebody tried to cat
      /proc/ioports - because the string that was assigned to the IO port
      region was a static string in the module virtual address area.
      Reported-by: NLubos Lunak <l.lunak@suse.cz>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Petr Cvek <petr.cvek@tul.cz>
      Acked-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4ed91901
    • T
      x86: revert assign IRQs to hpet timer · 5761d64b
      Thomas Gleixner 提交于
      The commits:
      
      commit 37a47db8
      Author: Balaji Rao <balajirrao@gmail.com>
      Date:   Wed Jan 30 13:30:03 2008 +0100
      
          x86: assign IRQs to HPET timers, fix
      
      and
      
      commit e3f37a54
      Author: Balaji Rao <balajirrao@gmail.com>
      Date:   Wed Jan 30 13:30:03 2008 +0100
      
          x86: assign IRQs to HPET timers
      
      have been identified to cause a regression on some platforms due to
      the assignement of legacy IRQs which makes the legacy devices
      connected to those IRQs disfunctional.
      
      Revert them.
      
      This fixes http://bugzilla.kernel.org/show_bug.cgi?id=10382Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      5761d64b
    • T
      x86: tsc prevent time going backwards · 47001d60
      Thomas Gleixner 提交于
      We already catch most of the TSC problems by sanity checks, but there
      is a subtle bug which has been in the code for ever. This can cause
      time jumps in the range of hours.
      
      This was reported in:
           http://lkml.org/lkml/2007/8/23/96
      and
           http://lkml.org/lkml/2008/3/31/23
      
      I was able to reproduce the problem with a gettimeofday loop test on a
      dual core and a quad core machine which both have sychronized
      TSCs. The TSCs seems not to be perfectly in sync though, but the
      kernel is not able to detect the slight delta in the sync check. Still
      there exists an extremly small window where this delta can be observed
      with a real big time jump. So far I was only able to reproduce this
      with the vsyscall gettimeofday implementation, but in theory this
      might be observable with the syscall based version as well.
      
      CPU 0 updates the clock source variables under xtime/vyscall lock and
      CPU1, where the TSC is slighty behind CPU0, is reading the time right
      after the seqlock was unlocked.
      
      The clocksource reference data was updated with the TSC from CPU0 and
      the value which is read from TSC on CPU1 is less than the reference
      data. This results in a huge delta value due to the unsigned
      subtraction of the TSC value and the reference value. This algorithm
      can not be changed due to the support of wrapping clock sources like
      pm timer.
      
      The huge delta is converted to nanoseconds and added to xtime, which
      is then observable by the caller. The next gettimeofday call on CPU1
      will show the correct time again as now the TSC has advanced above the
      reference value.
      
      To prevent this TSC specific wreckage we need to compare the TSC value
      against the reference value and return the latter when it is larger
      than the actual TSC value.
      
      I pondered to mark the TSC unstable when the readout is smaller than
      the reference value, but this would render an otherwise good and fast
      clocksource unusable without a real good reason.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      47001d60
    • M
      xen: Clear PG_pinned in release_{pt,pd}() · c946c7de
      Mark McLoughlin 提交于
      Signed-off-by: NMark McLoughlin <markmc@redhat.com>
      Cc: xen-devel@lists.xensource.com
      Cc: Mark McLoughlin <markmc@redhat.com>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c946c7de
    • M
      xen: Do not pin/unpin PMD pages · a684d69d
      Mark McLoughlin 提交于
      i.e. with this simple test case:
      
          int fd = open("/dev/zero", O_RDONLY);
          munmap(mmap((void *)0x40000000, 0x1000_LEN, PROT_READ, MAP_PRIVATE, fd, 0), 0x1000);
          close(fd);
      
      we currently get:
      
         kernel BUG at arch/x86/xen/enlighten.c:678!
         ...
         EIP is at xen_release_pt+0x79/0xa9
         ...
         Call Trace:
          [<c041da25>] ? __pmd_free_tlb+0x1a/0x75
          [<c047a192>] ? free_pgd_range+0x1d2/0x2b5
          [<c047a2f3>] ? free_pgtables+0x7e/0x93
          [<c047b272>] ? unmap_region+0xb9/0xf5
          [<c047c1bd>] ? do_munmap+0x193/0x1f5
          [<c047c24f>] ? sys_munmap+0x30/0x3f
          [<c0408cce>] ? syscall_call+0x7/0xb
          =======================
      
      and xen complains:
      
        (XEN) mm.c:2241:d4 Mfn 1cc37 not pinned
      
      Further details at:
      
        https://bugzilla.redhat.com/436453Signed-off-by: NMark McLoughlin <markmc@redhat.com>
      Cc: xen-devel@lists.xensource.com
      Cc: Mark McLoughlin <markmc@redhat.com>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a684d69d
    • M
      xen: refactor xen_{alloc,release}_{pt,pd}() · f6433706
      Mark McLoughlin 提交于
      Signed-off-by: NMark McLoughlin <markmc@redhat.com>
      Cc: xen-devel@lists.xensource.com
      Cc: Mark McLoughlin <markmc@redhat.com>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f6433706
    • P
      x86, agpgart: scary messages are fortunately obsolete · 8f59610d
      Pavel Machek 提交于
      Fix obsolete printks in aperture-64. We used not to handle missing
      agpgart, but we handle it okay now.
      Signed-off-by: NPavel Machek <pavel@suse.cz>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8f59610d
    • M
      xen: fix grant table bug · bbc60c18
      Michael Abd-El-Malek 提交于
      fix memory corruption and crash due to mis-sized grant table.
      
      A PV OS has two grant table data structures: the grant table itself
      and a free list.  The free list is composed of an array of pages,
      which grow dynamically as the guest OS requires more grants.  While
      the grant table contains 8-byte entries, the free list contains 4-byte
      entries.  So we have half as many pages in the free list than in the
      grant table.
      
      There was a bug in the free list allocation code. The free list was
      indexed as if it was the same size as the grant table.  But it's only
      half as large.  So memory got corrupted, and I was seeing crashes in
      the slab allocator later on.
      
      Taken from:
      
        http://xenbits.xensource.com/linux-2.6.18-xen.hg?rev/4018c0da3360Signed-off-by: NMichael Abd-El-Malek <mabdelmalek@cmu.edu>
      Signed-off-by: NMark McLoughlin <markmc@redhat.com>
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      bbc60c18
    • R
      x86: fix breakage of vSMP irq operations · bae1d250
      Ravikiran G Thirumalai 提交于
      25-rc* stopped working with CONFIG_X86_VSMP on vSMP machines.
      
      Looks like the vsmp irq ops got accidentally removed during merge of x86_64
      pvops in 2.6.25. -- commit 6abcd98f removed
      vsmp irq ops.
      
      Tested with both CONFIG_X86_VSMP and without CONFIG_X86_VSMP, on vSMP and non
      vSMP x86_64 machines.
      
      Please apply.
      Signed-off-by: NRavikiran Thirumalai <kiran@scalex86.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      bae1d250
    • I
      x86: print message if nmi_watchdog=2 cannot be enabled · 9c9b81f7
      Ingo Molnar 提交于
      right now if there's no CPU support for nmi_watchdog=2 we'll just
      refuse it silently.
      
      print a useful warning.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      9c9b81f7
    • I
      x86: fix nmi_watchdog=2 on Pentium-D CPUs · 4f14bdef
      Ingo Molnar 提交于
      implement nmi_watchdog=2 on this class of CPUs:
      
        cpu family      : 15
        model           : 6
        model name      : Intel(R) Pentium(R) D CPU 3.00GHz
      
      the watchdog's ->setup() method is safe anyway, so if the CPU
      cannot support it we'll bail out safely.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4f14bdef
  2. 04 4月, 2008 12 次提交
  3. 03 4月, 2008 8 次提交