1. 22 5月, 2007 4 次提交
    • A
      i386: Clear MCE flag on AMD K6 · c12ceb76
      Andi Kleen 提交于
      It reports machine check capability in CPUID, but doesn't actually
      implement all the necessary MSRs of the standard Intel machine
      check architecture.
      
      This fixes a boot failure on K6s recently introduced.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c12ceb76
    • A
      i386: Fix K8/core2 oprofile on multiple CPUs · 6c977aad
      Andi Kleen 提交于
      Only try to allocate MSRs once instead of for every CPU.
      
      This assumes the MSRs are the same on all CPUs which is currently
      true. P4-HT is a special case for different SMT threads, but the code
      always saves/restores all MSRs so it works identical.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6c977aad
    • A
      i386: Update defconfig · 20c3a3d0
      Andi Kleen 提交于
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      20c3a3d0
    • A
      Detach sched.h from mm.h · e8edc6e0
      Alexey Dobriyan 提交于
      First thing mm.h does is including sched.h solely for can_do_mlock() inline
      function which has "current" dereference inside. By dealing with can_do_mlock()
      mm.h can be detached from sched.h which is good. See below, why.
      
      This patch
      a) removes unconditional inclusion of sched.h from mm.h
      b) makes can_do_mlock() normal function in mm/mlock.c
      c) exports can_do_mlock() to not break compilation
      d) adds sched.h inclusions back to files that were getting it indirectly.
      e) adds less bloated headers to some files (asm/signal.h, jiffies.h) that were
         getting them indirectly
      
      Net result is:
      a) mm.h users would get less code to open, read, preprocess, parse, ... if
         they don't need sched.h
      b) sched.h stops being dependency for significant number of files:
         on x86_64 allmodconfig touching sched.h results in recompile of 4083 files,
         after patch it's only 3744 (-8.3%).
      
      Cross-compile tested on
      
      	all arm defconfigs, all mips defconfigs, all powerpc defconfigs,
      	alpha alpha-up
      	arm
      	i386 i386-up i386-defconfig i386-allnoconfig
      	ia64 ia64-up
      	m68k
      	mips
      	parisc parisc-up
      	powerpc powerpc-up
      	s390 s390-up
      	sparc sparc-up
      	sparc64 sparc64-up
      	um-x86_64
      	x86_64 x86_64-up x86_64-defconfig x86_64-allnoconfig
      
      as well as my two usual configs.
      Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e8edc6e0
  2. 18 5月, 2007 1 次提交
  3. 17 5月, 2007 2 次提交
  4. 16 5月, 2007 1 次提交
  5. 15 5月, 2007 4 次提交
  6. 14 5月, 2007 1 次提交
    • D
      [CPUFREQ] powernow-k7: fix MHz rounding issue with perflib · dc2585eb
      Daniel Drake 提交于
      When the PST tables are broken, powernow-k7 uses ACPI's processor_perflib to
      deduce the available frequency multipliers from the _PSS tables.
      
      Upon frequency change, processor_perflib performs some verification on the
      frequency (checks that it's within allowable bounds).
      
      powernow-k7 deals with absolute frequencies in KHz, whereas perflib only
      deals with MHz values. When performing the above verification, perflib
      multiplies the MHz values by 1000 to obtain the KHz value.
      
      We then end up with situations like the following:
       - powernow-k7 multiplies the multiplier by the FSB, and obtains a value
         such as 1266768 KHz
       - perflib belives the same state has frequency of 1266 MHz
       - acpi_processor_ppc_notifier calls cpufreq_verify_within_limits to verify
         that 1266768 is in the allowable range of 0 to 1266000 (i.e. 1266 * 1000)
       - it's not, so that frequency is rejected
       - the maximum CPU frequency is not reachable
      
      This patch solves the problem by rounding up the MHz values stored in perflib's
      tables. Additionally it corrects a broken URL.
      
      It also fixes http://bugzilla.kernel.org/show_bug.cgi?id=8255 although this
      case is a bit different: the frequencies in the _PSS tables are wildly wrong,
      but we get better results if we force ACPI to respect the fsb * multiplier
      calculations (even though it seems that the multiplier values aren't entirely
      correct either).
      Signed-off-by: NDaniel Drake <dsd@gentoo.org>
      Signed-off-by: NDave Jones <davej@redhat.com>
      dc2585eb
  7. 13 5月, 2007 2 次提交
  8. 12 5月, 2007 1 次提交
  9. 11 5月, 2007 4 次提交
  10. 10 5月, 2007 7 次提交
  11. 09 5月, 2007 13 次提交
    • U
      fix file specification in comments · 58862699
      Uwe Kleine-König 提交于
      Many files include the filename at the beginning, serveral used a wrong one.
      Signed-off-by: NUwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      58862699
    • R
      Kconfig: A couple of grammatical fixes in arch/i386/Kconfig · fd2dbc92
      Robert P. J. Day 提交于
      Fix a couple grammatical errors in arch/i386/Kconfig.
      Signed-off-by: NRobert P. J. Day <rpjday@mindspring.com>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      fd2dbc92
    • D
      Fix trivial typos in Kconfig* files · 3dde6ad8
      David Sterba 提交于
      Fix several typos in help text in Kconfig* files.
      Signed-off-by: NDavid Sterba <dave@jikos.cz>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      3dde6ad8
    • L
      Revert "fbdev: ignore VESA modes if framebuffer is disabled" · 01e73be3
      Linus Torvalds 提交于
      This reverts commit 464bdd33.
      
      Peter Anvin correctly points out that VESA modes have nothing to do with
      frame buffers per se - they are often just regular extended text modes.
      Disabling them just because we don't have frame buffer support is very
      wrong.
      
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Antonino A. Daplas <adaplas@gmail.com>,
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      01e73be3
    • A
      fbdev: ignore VESA modes if framebuffer is disabled · 464bdd33
      Antonino A. Daplas 提交于
      If the option vga=<VESA graphics mode> is added to the boot parameter, it will
      activate graphics mode, but without any framebuffer support, the user is left
      with an unusable display.
      
      Change the behavior such that the user is instead prompted for another mode
      (ala vga=ask).
      
      NOTE: People can always use vbetool to set a graphics mode if this is really
      desired, but the number of people doing this approaches zero.
      Signed-off-by: NAntonino Daplas <adaplas@pol.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      464bdd33
    • B
      x86, serial: convert legacy COM ports to platform devices · 7e92b4fc
      Bjorn Helgaas 提交于
      Make x86 COM ports into platform devices and don't probe for them
      if we have PNP.
      
      This prevents double discovery, where a device was found both by
      the legacy probe and by 8250_pnp, e.g.,
      
          serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
          00:02: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
      
      This also means IRDA devices without a UART PNP ID will no longer be
      claimed by the serial driver, which might require changes in IRDA
      drivers and administration.
      
      In addition to this patch, you may need to configure a setserial init
      script, e.g., /etc/init.d/setserial, so it doesn't poke legacy UART
      stuff back in.  On Debian, "dpkg-reconfigure setserial" with the "kernel"
      option does this.
      
      To force the old legacy probe behavior even when we have PNPBIOS or
      ACPI, load the new legacy_serial module (or build 8250 static) with
      the "legacy_serial.force" option.
      
      [akpm@linux-foundation.org: fix makefiles]
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Cc: Keith Owens <kaos@ocs.com.au>
      Cc: Len Brown <lenb@kernel.org>
      Cc: Adam Belay <ambx1@neo.rr.com>
      Cc: Matthieu CASTET <castet.matthieu@free.fr>
      Cc: Jean Tourrilhes <jt@hpl.hp.com>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: Ville Syrjala <syrjala@sci.fi>
      Cc: Russell King <rmk+serial@arm.linux.org.uk>
      Cc: Samuel Ortiz <samuel@sortiz.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7e92b4fc
    • B
      Add IRQF_IRQPOLL flag on i386 · b34942fe
      Bernhard Walle 提交于
      Add IRQF_IRQPOLL to timer interrupts on i386.
      Signed-off-by: NBernhard Walle <bwalle@suse.de>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: James Bottomley <James.Bottomley@steeleye.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b34942fe
    • A
      Kprobes: The ON/OFF knob thru debugfs · bf8f6e5b
      Ananth N Mavinakayanahalli 提交于
      This patch provides a debugfs knob to turn kprobes on/off
      
      o A new file /debug/kprobes/enabled indicates if kprobes is enabled or
        not (default enabled)
      o Echoing 0 to this file will disarm all installed probes
      o Any new probe registration when disabled will register the probe but
        not arm it. A message will be printed out in such a case.
      o When a value 1 is echoed to the file, all probes (including ones
        registered in the intervening period) will be enabled
      o Unregistration will happen irrespective of whether probes are globally
        enabled or not.
      o Update Documentation/kprobes.txt to reflect these changes. While there
        also update the doc to make it current.
      
      We are also looking at providing sysrq key support to tie to the disabling
      feature provided by this patch.
      
      [akpm@linux-foundation.org: Use bool like a bool!]
      [akpm@linux-foundation.org: add printk facility levels]
      [cornelia.huck@de.ibm.com: Add the missing arch_trampoline_kprobe() for s390]
      Signed-off-by: NAnanth N Mavinakayanahalli <ananth@in.ibm.com>
      Signed-off-by: NSrinivasa DS <srinivasa@in.ibm.com>
      Signed-off-by: NCornelia Huck <cornelia.huck@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      bf8f6e5b
    • C
      kprobes: kretprobes simplifications · 4c4308cb
      Christoph Hellwig 提交于
       - consolidate duplicate code in all arch_prepare_kretprobe instances
         into common code
       - replace various odd helpers that use hlist_for_each_entry to get
         the first elemenet of a list with either a hlist_for_each_entry_save
         or an opencoded access to the first element in the caller
       - inline add_rp_inst into it's only remaining caller
       - use kretprobe_inst_table_head instead of opencoding it
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Cc: Prasanna S Panchamukhi <prasanna@in.ibm.com>
      Acked-by: NAnanth N Mavinakayanahalli <ananth@in.ibm.com>
      Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4c4308cb
    • U
      utimensat implementation · 1c710c89
      Ulrich Drepper 提交于
      Implement utimensat(2) which is an extension to futimesat(2) in that it
      
      a) supports nano-second resolution for the timestamps
      b) allows to selectively ignore the atime/mtime value
      c) allows to selectively use the current time for either atime or mtime
      d) supports changing the atime/mtime of a symlink itself along the lines
         of the BSD lutimes(3) functions
      
      For this change the internally used do_utimes() functions was changed to
      accept a timespec time value and an additional flags parameter.
      
      Additionally the sys_utime function was changed to match compat_sys_utime
      which already use do_utimes instead of duplicating the work.
      
      Also, the completely missing futimensat() functionality is added.  We have
      such a function in glibc but we have to resort to using /proc/self/fd/* which
      not everybody likes (chroot etc).
      
      Test application (the syscall number will need per-arch editing):
      
      #include <errno.h>
      #include <fcntl.h>
      #include <time.h>
      #include <sys/time.h>
      #include <stddef.h>
      #include <syscall.h>
      
      #define __NR_utimensat 280
      
      #define UTIME_NOW       ((1l << 30) - 1l)
      #define UTIME_OMIT      ((1l << 30) - 2l)
      
      int
      main(void)
      {
        int status = 0;
      
        int fd = open("ttt", O_RDWR|O_CREAT|O_EXCL, 0666);
        if (fd == -1)
          error (1, errno, "failed to create test file \"ttt\"");
      
        struct stat64 st1;
        if (fstat64 (fd, &st1) != 0)
          error (1, errno, "fstat failed");
      
        struct timespec t[2];
        t[0].tv_sec = 0;
        t[0].tv_nsec = 0;
        t[1].tv_sec = 0;
        t[1].tv_nsec = 0;
        if (syscall(__NR_utimensat, AT_FDCWD, "ttt", t, 0) != 0)
          error (1, errno, "utimensat failed");
      
        struct stat64 st2;
        if (fstat64 (fd, &st2) != 0)
          error (1, errno, "fstat failed");
      
        if (st2.st_atim.tv_sec != 0 || st2.st_atim.tv_nsec != 0)
          {
            puts ("atim not reset to zero");
            status = 1;
          }
        if (st2.st_mtim.tv_sec != 0 || st2.st_mtim.tv_nsec != 0)
          {
            puts ("mtim not reset to zero");
            status = 1;
          }
        if (status != 0)
          goto out;
      
        t[0] = st1.st_atim;
        t[1].tv_sec = 0;
        t[1].tv_nsec = UTIME_OMIT;
        if (syscall(__NR_utimensat, AT_FDCWD, "ttt", t, 0) != 0)
          error (1, errno, "utimensat failed");
      
        if (fstat64 (fd, &st2) != 0)
          error (1, errno, "fstat failed");
      
        if (st2.st_atim.tv_sec != st1.st_atim.tv_sec
            || st2.st_atim.tv_nsec != st1.st_atim.tv_nsec)
          {
            puts ("atim not set");
            status = 1;
          }
        if (st2.st_mtim.tv_sec != 0 || st2.st_mtim.tv_nsec != 0)
          {
            puts ("mtim changed from zero");
            status = 1;
          }
        if (status != 0)
          goto out;
      
        t[0].tv_sec = 0;
        t[0].tv_nsec = UTIME_OMIT;
        t[1] = st1.st_mtim;
        if (syscall(__NR_utimensat, AT_FDCWD, "ttt", t, 0) != 0)
          error (1, errno, "utimensat failed");
      
        if (fstat64 (fd, &st2) != 0)
          error (1, errno, "fstat failed");
      
        if (st2.st_atim.tv_sec != st1.st_atim.tv_sec
            || st2.st_atim.tv_nsec != st1.st_atim.tv_nsec)
          {
            puts ("mtim changed from original time");
            status = 1;
          }
        if (st2.st_mtim.tv_sec != st1.st_mtim.tv_sec
            || st2.st_mtim.tv_nsec != st1.st_mtim.tv_nsec)
          {
            puts ("mtim not set");
            status = 1;
          }
        if (status != 0)
          goto out;
      
        sleep (2);
      
        t[0].tv_sec = 0;
        t[0].tv_nsec = UTIME_NOW;
        t[1].tv_sec = 0;
        t[1].tv_nsec = UTIME_NOW;
        if (syscall(__NR_utimensat, AT_FDCWD, "ttt", t, 0) != 0)
          error (1, errno, "utimensat failed");
      
        if (fstat64 (fd, &st2) != 0)
          error (1, errno, "fstat failed");
      
        struct timeval tv;
        gettimeofday(&tv,NULL);
      
        if (st2.st_atim.tv_sec <= st1.st_atim.tv_sec
            || st2.st_atim.tv_sec > tv.tv_sec)
          {
            puts ("atim not set to NOW");
            status = 1;
          }
        if (st2.st_mtim.tv_sec <= st1.st_mtim.tv_sec
            || st2.st_mtim.tv_sec > tv.tv_sec)
          {
            puts ("mtim not set to NOW");
            status = 1;
          }
      
        if (symlink ("ttt", "tttsym") != 0)
          error (1, errno, "cannot create symlink");
      
        t[0].tv_sec = 0;
        t[0].tv_nsec = 0;
        t[1].tv_sec = 0;
        t[1].tv_nsec = 0;
        if (syscall(__NR_utimensat, AT_FDCWD, "tttsym", t, AT_SYMLINK_NOFOLLOW) != 0)
          error (1, errno, "utimensat failed");
      
        if (lstat64 ("tttsym", &st2) != 0)
          error (1, errno, "lstat failed");
      
        if (st2.st_atim.tv_sec != 0 || st2.st_atim.tv_nsec != 0)
          {
            puts ("symlink atim not reset to zero");
            status = 1;
          }
        if (st2.st_mtim.tv_sec != 0 || st2.st_mtim.tv_nsec != 0)
          {
            puts ("symlink mtim not reset to zero");
            status = 1;
          }
        if (status != 0)
          goto out;
      
        t[0].tv_sec = 1;
        t[0].tv_nsec = 0;
        t[1].tv_sec = 1;
        t[1].tv_nsec = 0;
        if (syscall(__NR_utimensat, fd, NULL, t, 0) != 0)
          error (1, errno, "utimensat failed");
      
        if (fstat64 (fd, &st2) != 0)
          error (1, errno, "fstat failed");
      
        if (st2.st_atim.tv_sec != 1 || st2.st_atim.tv_nsec != 0)
          {
            puts ("atim not reset to one");
            status = 1;
          }
        if (st2.st_mtim.tv_sec != 1 || st2.st_mtim.tv_nsec != 0)
          {
            puts ("mtim not reset to one");
            status = 1;
          }
      
        if (status == 0)
           puts ("all OK");
      
       out:
        close (fd);
        unlink ("ttt");
        unlink ("tttsym");
      
        return status;
      }
      
      [akpm@linux-foundation.org: add missing i386 syscall table entry]
      Signed-off-by: NUlrich Drepper <drepper@redhat.com>
      Cc: Alexey Dobriyan <adobriyan@openvz.org>
      Cc: Michael Kerrisk <mtk-manpages@gmx.net>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1c710c89
    • G
      dma_declare_coherent_memory wrong allocation · b247e8aa
      Guennadi Liakhovetski 提交于
      dma_declare_coherent_memory() allocates a bitmap 1 bit per page, it
      calculates the bitmap size based on size of long, but allocates bytes...
      Thanks to James Bottomley for clarifications and corrections.
      Signed-off-by: NG. Liakhovetski <g.liakhovetski@gmx.de>
      Acked-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b247e8aa
    • A
      apm: fix incorrect comment · c9919380
      Alan Cox 提交于
      HZ has not always been 100Hz for some time.
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c9919380
    • B
      EFI: warn only for pre-1.00 system tables · 873ec746
      Bjorn Helgaas 提交于
      We used to warn unless the EFI system table major revision was exactly 1.
      But EFI 2.00 firmware is starting to appear, and the 2.00 changes don't
      affect anything in Linux.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      873ec746