1. 30 Jan, 2009 1 commit
  2. 26 Jan, 2009 31 commits
  3. 25 Jan, 2009 2 commits
  4. 23 Jan, 2009 6 commits
    • Ian Campbell's avatar
      xen: handle highmem pages correctly when shrinking a domain · ff4ce8c3
      Ian Campbell authored
      Commit 1058a75f ("xen: actually release
      memory when shrinking domain") causes a crash if the page being released
      is a highmem page.
      
      If a page is highmem then there is no need to unmap it.
      Signed-off-by: default avatarIan Campbell <ian.campbell@citrix.com>
      Acked-by: default avatarJeremy Fitzhardinge <jeremy@goop.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      ff4ce8c3
    • Peter Zijlstra's avatar
      x86, mm: fix pte_free() · 42ef73fe
      Peter Zijlstra authored
      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: default avatarPeter Zijlstra <a.p.zijlsta@chello.nl>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Cc: <stable@kernel.org>
      42ef73fe
    • Takashi Iwai's avatar
      Merge branch 'fix/asoc' into for-linus · 0f0779b1
      Takashi Iwai authored
      0f0779b1
    • Michael Holzheu's avatar
      [S390] Add missing compat system call wrappers. · e34a6280
      Michael Holzheu authored
      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: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      e34a6280
    • Heiko Carstens's avatar
      [S390] etr/stp: fix possible deadlock · 179cb81a
      Heiko Carstens authored
      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: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      179cb81a
    • Heiko Carstens's avatar
      [S390] cputime: fix lowcore initialization on cpu hotplug · f9a2f797
      Heiko Carstens authored
      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: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      f9a2f797