1. 28 1月, 2009 2 次提交
  2. 27 1月, 2009 8 次提交
  3. 26 1月, 2009 5 次提交
    • R
      x86: fix section mismatch warning · 659d2618
      Rakib Mullick 提交于
      Here function vmi_activate calls a init function activate_vmi , which
      causes the following section mismatch warnings:
      
        LD      arch/x86/kernel/built-in.o
      WARNING: arch/x86/kernel/built-in.o(.text+0x13ba9): Section mismatch
      in reference from the function vmi_activate() to the function
      .init.text:vmi_time_init()
      The function vmi_activate() references
      the function __init vmi_time_init().
      This is often because vmi_activate lacks a __init
      annotation or the annotation of vmi_time_init is wrong.
      
      WARNING: arch/x86/kernel/built-in.o(.text+0x13bd1): Section mismatch
      in reference from the function vmi_activate() to the function
      .devinit.text:vmi_time_bsp_init()
      The function vmi_activate() references
      the function __devinit vmi_time_bsp_init().
      This is often because vmi_activate lacks a __devinit
      annotation or the annotation of vmi_time_bsp_init is wrong.
      
      WARNING: arch/x86/kernel/built-in.o(.text+0x13bdb): Section mismatch
      in reference from the function vmi_activate() to the function
      .devinit.text:vmi_time_ap_init()
      The function vmi_activate() references
      the function __devinit vmi_time_ap_init().
      This is often because vmi_activate lacks a __devinit
      annotation or the annotation of vmi_time_ap_init is wrong.
      
      Fix it by marking vmi_activate() as __init too.
      Signed-off-by: NRakib Mullick <rakib.mullick@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      659d2618
    • I
      x86: unmask CPUID levels on Intel CPUs, fix · 99fb4d34
      Ingo Molnar 提交于
      Impact: fix boot hang on pre-model-15 Intel CPUs
      
      rdmsrl_safe() does not work in very early bootup code yet, because we
      dont have the pagefault handler installed yet so exception section
      does not get parsed. rdmsr_safe() will just crash and hang the bootup.
      
      So limit the MSR_IA32_MISC_ENABLE MSR read to those CPU types that
      support it.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      99fb4d34
    • T
      libata-sff: fix incorrect EH message · 80ee6f54
      Tejun Heo 提交于
      The EH message for NODEV_HINT path was describing the opposite
      condition.  Fix it.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      80ee6f54
    • E
      x86: work around PAGE_KERNEL_WC not getting WC in iomap_atomic_prot_pfn. · ef5fa0ab
      Eric Anholt 提交于
      In the absence of PAT, PAGE_KERNEL_WC ends up mapping to a memory type that
      gets UC behavior even in the presence of a WC MTRR covering the area in
      question.  By swapping to PAGE_KERNEL_UC_MINUS, we can get the actual
      behavior the caller wanted (WC if you can manage it, UC otherwise).
      
      This recovers the 40% performance improvement of using WC in the DRM
      to upload vertex data.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      ef5fa0ab
    • R
      [ARM] fix section-based ioremap · 24f11ec0
      Russell King 提交于
      Tomi Valkeinen reports:
        Running with latest linux-omap kernel on OMAP3 SDP board, I have
        problem with iounmap(). It looks like iounmap() does not properly
        free large areas. Below is a test which fails for me in 6-7 loops.
      
      	for (i = 0; i < 200; ++i) {
      		vaddr = ioremap(paddr, size);
      		if (!vaddr) {
      			printk("couldn't ioremap\n");
      			break;
      		}
      		iounmap(vaddr);
      	}
      
      The changes to vmalloc.c weren't reflected in the ARM ioremap
      implementation.  Turns out the fix is rather simple.
      Tested-by: NTomi Valkeinen <tomi.valkeinen@nokia.com>
      Tested-by: NMatt Gerassimoff <mgeras@gmail.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      24f11ec0
  4. 25 1月, 2009 2 次提交
  5. 24 1月, 2009 4 次提交
    • R
      [ARM] clkdev: fix clock matching · 409dc360
      Russell King 提交于
      The old matching algorithm was too fuzzy, causing false positives.
      For example, when asked for device D connection C1 and we only find
      device D connection C2, we return that as a valid match despite the
      connection names being different.
      
      Change the algorithm such that:
        An entry with a NULL ID is assumed to be a wildcard.
        If an entry has a device ID, it must match
        If an entry has a connection ID, it must match
      
      However, we maintain the order of precidence while still only doing
      a single pass over all entries: dev+con > dev only > con only.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      409dc360
    • D
      [ARM] 5368/1: arch/arm/mach-davinci/usb.c buildfix · d0e58ae7
      David Brownell 提交于
      From: David Brownell <dbrownell@users.sourceforge.net>
      Subject: ARM/mach-davinci/usb.c buildfix
      
        CC      arch/arm/mach-davinci/usb.o
      arch/arm/mach-davinci/usb.c:60: error: 'IRQ_USBINT' undeclared here (not in a function)
      make[1]: *** [arch/arm/mach-davinci/usb.o] Error 1
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      d0e58ae7
    • R
      [ARM] fix StrongARM-11x0 page copy implementation · 7dd8c4f3
      Russell King 提交于
      Which had the 'from' and 'to' pages reversed.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      7dd8c4f3
    • P
      x86, mm: fix pte_free() · 42ef73fe
      Peter Zijlstra 提交于
      On -rt we were seeing spurious bad page states like:
      
      Bad page state in process 'firefox'
      page:c1bc2380 flags:0x40000000 mapping:c1bc2390 mapcount:0 count:0
      Trying to fix it up, but a reboot is needed
      Backtrace:
      Pid: 503, comm: firefox Not tainted 2.6.26.8-rt13 #3
      [<c043d0f3>] ? printk+0x14/0x19
      [<c0272d4e>] bad_page+0x4e/0x79
      [<c0273831>] free_hot_cold_page+0x5b/0x1d3
      [<c02739f6>] free_hot_page+0xf/0x11
      [<c0273a18>] __free_pages+0x20/0x2b
      [<c027d170>] __pte_alloc+0x87/0x91
      [<c027d25e>] handle_mm_fault+0xe4/0x733
      [<c043f680>] ? rt_mutex_down_read_trylock+0x57/0x63
      [<c043f680>] ? rt_mutex_down_read_trylock+0x57/0x63
      [<c0218875>] do_page_fault+0x36f/0x88a
      
      This is the case where a concurrent fault already installed the PTE and
      we get to free the newly allocated one.
      
      This is due to pgtable_page_ctor() doing the spin_lock_init(&page->ptl)
      which is overlaid with the {private, mapping} struct.
      
      union {
          struct {
              unsigned long private;
              struct address_space *mapping;
          };
          spinlock_t ptl;
          struct kmem_cache *slab;
          struct page *first_page;
      };
      
      Normally the spinlock is small enough to not stomp on page->mapping, but
      PREEMPT_RT=y has huge 'spin'locks.
      
      But lockdep kernels should also be able to trigger this splat, as the
      lock tracking code grows the spinlock to cover page->mapping.
      
      The obvious fix is calling pgtable_page_dtor() like the regular pte free
      path __pte_free_tlb() does.
      
      It seems all architectures except x86 and nm10300 already do this, and
      nm10300 doesn't seem to use pgtable_page_ctor(), which suggests it
      doesn't do SMP or simply doesnt do MMU at all or something.
      Signed-off-by: NPeter Zijlstra <a.p.zijlsta@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Cc: <stable@kernel.org>
      42ef73fe
  6. 23 1月, 2009 7 次提交
    • M
      [S390] Add missing compat system call wrappers. · e34a6280
      Michael Holzheu 提交于
      Add wrapper functions for the following compat system calls:
      * readahead
      * sendfile64
      * tkill
      * tgkill
      * keyctl
      This ensures that the high order bits of the parameter registers are correctly
      sign extended.
      Signed-off-by: NMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      e34a6280
    • H
      [S390] etr/stp: fix possible deadlock · 179cb81a
      Heiko Carstens 提交于
      Precreate stop_machine threads in case the machine supports ETR/STP.
      Otherwise we might deadlock if a time sync operation gets scheduled
      and the creation of stop_machine threads would cause disk I/O.
      This is just the minimal fix.
      The real fix would be to only precreate stop_machine threads if
      ETR/STP is actually used. But that would be a rather large and
      complicated patch.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      179cb81a
    • H
      [S390] cputime: fix lowcore initialization on cpu hotplug · f9a2f797
      Heiko Carstens 提交于
      On (initial) cpu hotplug the lowcore values for user_timer and
      system_timer don't get initialized like they would get on each
      process schedule.
      On initial start of secondary cpus this leads to the situation
      where per thread user/system_timer values are larger than the
      corresponding contents of the lowcore. When later calculating
      time spent in user/system context the result can be negative.
      
      So for cpu hotplug we should manually initialize lowcore values.
      
      Fixes this bug:
      
      Kernel BUG at 000ec080 [verbose debug info unavailable]
      fixpoint divide exception: 0009 [#1] PREEMPT SMP
      Modules linked in:
      CPU: 10 Not tainted 2.6.28 #4
      Process sysctl (pid: 975, task: 3fa752e0, ksp: 3fbebca0)
      Krnl PSW : 070c1000 800ec080 (show_stat+0x390/0x5fc)
                 R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:1 PM:0
      Krnl GPRS: 7fffffff fefc7ce5 3faec080 003879ae
                 00000001 01388000 7fffffff 01388000
                 00000000 00000000 0049ad50 3fbebcf8
                 01388000 002f51a8 800ec1fe 3fbebcf8
      Krnl Code: 800ec076: 9001b188           stm     %r0,%r1,392(%r11)
                 800ec07a: 9801b0c0           lm      %r0,%r1,192(%r11)
                 800ec07e: 1d05               dr      %r0,%r5
                >800ec080: 9001b0c0           stm     %r0,%r1,192(%r11)
                 800ec084: 5860b0c4           l       %r6,196(%r11)
                 800ec088: 1806               lr      %r0,%r6
                 800ec08a: 8c800001           srdl    %r8,1
                 800ec08e: 1d87               dr      %r8,%r7
      Call Trace:
      ([<00000000000ec1ee>] show_stat+0x4fe/0x5fc)
       [<00000000000c13e8>] seq_read+0xc4/0x3ac
       [<00000000000e4796>] proc_reg_read+0x6e/0x9c
       [<00000000000a6a44>] vfs_read+0x78/0x100
       [<00000000000a6ba8>] sys_read+0x40/0x80
       [<00000000000234a8>] sysc_do_restart+0x1a/0x1e
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      f9a2f797
    • M
      [S390] fix compat sigaltstack syscall table entry · e9a4e9d5
      Michael Holzheu 提交于
      When 31 bit user space programs call sigaltstack on a 64 bit Linux
      OS, the system call returns -1 with errno=EFAULT. The 31 bit pointer passed
      to the system call is extended to 64 bit, but the high order bits are not
      set to zero. The kernel detects the invalid user space pointer and
      returns -EFAULT. To solve the problem, sys32_sigaltstack_wrapper()
      instead of sys32_sigaltstack() has to be called. The wrapper function sets
      the high order bits to zero.
      Signed-off-by: NMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      e9a4e9d5
    • H
      [S390] personality: fix personality loss on execve · 03e4c49f
      Heiko Carstens 提交于
      Use the personality() macro to mask out all bits that are not
      relevant for the personality type.
      The personality field contains bits for other things as well,
      so without masking out the not relevalent bits the comparison
      won't do what is expected.
      Reported-by: NAndreas Krebbel <krebbel@linux.vnet.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      03e4c49f
    • J
      powerpc/4xx: Update multi-board PowerPC 4xx defconfigs · 0b21bcd5
      Josh Boyer 提交于
      Update the multi-board configs for 2.6.29-rc2
      Signed-off-by: NJosh Boyer <jwboyer@linux.vnet.ibm.com>
      0b21bcd5
    • J
      powerpc/44x: Update PowerPC 44x defconfigs · f67d347f
      Josh Boyer 提交于
      Update the 44x defconfigs for 2.6.29-rc2
      Signed-off-by: NJosh Boyer <jwboyer@linux.vnet.ibm.com>
      f67d347f
  7. 22 1月, 2009 5 次提交
  8. 21 1月, 2009 7 次提交
    • T
      x86: mtrr fix debug boot parameter · 731f1872
      Thomas Renninger 提交于
      while looking at:
      
        http://bugzilla.kernel.org/show_bug.cgi?id=11541
      
      I realized that the mtrr.show param cannot work, because
      the code is processed much too early.
      
      This patch:
       - Declares mtrr.show as early_param
       - Stays consistent with the previous param (which I doubt
         that it ever worked), so mtrr.show=1 would still work
       - Declares mtrr_show as initdata
      Signed-off-by: NThomas Renninger <trenn@suse.de>
      Acked-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      731f1872
    • S
      x86: fix page attribute corruption with cpa() · a1e46212
      Suresh Siddha 提交于
      Impact: fix sporadic slowdowns and warning messages
      
      This patch fixes a performance issue reported by Linus on his
      Nehalem system. While Linus reverted the PAT patch (commit
      58dab916) which exposed the issue,
      existing cpa() code can potentially still cause wrong(page attribute
      corruption) behavior.
      
      This patch also fixes the "WARNING: at arch/x86/mm/pageattr.c:560" that
      various people reported.
      
      In 64bit kernel, kernel identity mapping might have holes depending
      on the available memory and how e820 reports the address range
      covering the RAM, ACPI, PCI reserved regions. If there is a 2MB/1GB hole
      in the address range that is not listed by e820 entries, kernel identity
      mapping will have a corresponding hole in its 1-1 identity mapping.
      
      If cpa() happens on the kernel identity mapping which falls into these holes,
      existing code fails like this:
      
      	__change_page_attr_set_clr()
      		__change_page_attr()
      			returns 0 because of if (!kpte). But doesn't
      			set cpa->numpages and cpa->pfn.
      		cpa_process_alias()
      			uses uninitialized cpa->pfn (random value)
      			which can potentially lead to changing the page
      			attribute of kernel text/data, kernel identity
      			mapping of RAM pages etc. oops!
      
      This bug was easily exposed by another PAT patch which was doing
      cpa() more often on kernel identity mapping holes (physical range between
      max_low_pfn_mapped and 4GB), where in here it was setting the
      cache disable attribute(PCD) for kernel identity mappings aswell.
      
      Fix cpa() to handle the kernel identity mapping holes. Retain
      the WARN() for cpa() calls to other not present address ranges
      (kernel-text/data, ioremap() addresses)
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a1e46212
    • S
      sh: fix unaligned and nonexistent address handling · 2afb447f
      SUGIOKA Toshinobu 提交于
      unaligned and nonexistent address causes wrong exception
      handling in traps_32.c(handle_unaligned_access).
      
      'handle_unalinged_ins' should return -EFAULT if address error
      is fixed up with kernel exception table, otherwise
      'handle_unaligned_access' increases already fixed program counter
      and then crash.
      
      for example
         ioctl(fd, TCGETA, (struct termio *)-1)
      never return and stay in TASK_UNINTERRUPTIBLE state forever
      in my kernel.
      Signed-off-by: NSUGIOKA Toshinobu <sugioka@itonet.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      2afb447f
    • M
      sh: export the sh7343 JPU to user space · 3442c0d6
      Magnus Damm 提交于
      This patch exports the sh7343 JPU to user space using uio_pdrv_genirq,
      very similar to the sh7722 JPU patch by Hayama-san.
      
      While at it fix up the end of the sh7722 JPU iomem resource.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      3442c0d6
    • P
      sh: update defconfigs. · 5e8766f1
      Paul Mundt 提交于
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      5e8766f1
    • P
      sh: Kill off obsolete busses from arch/sh/Kconfig. · e16038ab
      Paul Mundt 提交于
      ISA can go away now that the hd6446x PCMCIA drivers no longer exist
      in-tree. The rationale for enabling CONFIG_ISA in the first place is
      likewise no longer valid given that the subsystem has changed since
      the time that assertion was valid.
      
      While we are at it, kill off SBUS, MCA, EISA, and so on. These are
      not supported and never will be.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      e16038ab
    • P
      sh: sh7785lcr/highlander/hp6xx need linux/irq.h. · 604437f0
      Paul Mundt 提交于
      More build fixes..
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      604437f0