1. 26 9月, 2011 1 次提交
  2. 21 9月, 2011 2 次提交
  3. 16 9月, 2011 1 次提交
    • L
      asm alternatives: remove incorrect alignment notes · a7f934d4
      Linus Torvalds 提交于
      On x86-64, they were just wasteful: with the explicitly added (now
      unnecessary) padding, the size of the alternatives structure was 16
      bytes, and an alignment of 8 bytes didn't hurt much.
      
      However, it was still silly, since the natural size and alignment for
      the structure is actually just 12 bytes, 4-byte aligned since commit
      59e97e4d ("x86: Make alternative instruction pointers relative").
      So removing the padding, and removing the extra alignment is just a good
      idea.
      
      On x86-32, the alignment of 4 bytes was correct, but was incorrectly
      hardcoded as 8 bytes in <asm/alternative-asm.h>.  That header file had
      used to be an x86-64 only header file, but various unification efforts
      have made it be used for x86-32 too (ie the unification of rwlock and
      rwsem).
      
      That in turn caused x86-32 boot failures, because the extra alignment
      would result in random zero-filled words in the altinstructions section,
      causing oopses early at boot when doing alternative instruction
      replacement.
      
      So just remove all the alignment noise entirely.  It's wrong, and it's
      unnecessary.  The section itself is already properly aligned by the
      linker scripts, and all additions to the section had better be of the
      proper 12-byte format, keeping it aligned.  So if the align directive
      were to ever make a difference, that would be an indication of a serious
      bug to begin with.
      Reported-by: NWerner Landgraf <w.landgraf@ru.r>
      Acked-by: NAndrew Lutomirski <luto@mit.edu>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a7f934d4
  4. 15 9月, 2011 19 次提交
  5. 14 9月, 2011 1 次提交
  6. 13 9月, 2011 1 次提交
    • D
      xen/e820: if there is no dom0_mem=, don't tweak extra_pages. · e3b73c4a
      David Vrabel 提交于
      The patch "xen: use maximum reservation to limit amount of usable RAM"
      (d312ae87) breaks machines that
      do not use 'dom0_mem=' argument with:
      
      reserve RAM buffer: 000000133f2e2000 - 000000133fffffff
      (XEN) mm.c:4976:d0 Global bit is set to kernel page fffff8117e
      (XEN) domain_crash_sync called from entry.S
      (XEN) Domain 0 (vcpu#0) crashed on cpu#0:
      ...
      
      The reason being that the last E820 entry is created using the
      'extra_pages' (which is based on how many pages have been freed).
      The mentioned git commit sets the initial value of 'extra_pages'
      using a hypercall which returns the number of pages (if dom0_mem
      has been used) or -1 otherwise. If the later we return with
      MAX_DOMAIN_PAGES as basis for calculation:
      
          return min(max_pages, MAX_DOMAIN_PAGES);
      
      and use it:
      
           extra_limit = xen_get_max_pages();
           if (extra_limit >= max_pfn)
                   extra_pages = extra_limit - max_pfn;
           else
                   extra_pages = 0;
      
      which means we end up with extra_pages = 128GB in PFNs (33554432)
      - 8GB in PFNs (2097152, on this specific box, can be larger or smaller),
      and then we add that value to the E820 making it:
      
        Xen: 00000000ff000000 - 0000000100000000 (reserved)
        Xen: 0000000100000000 - 000000133f2e2000 (usable)
      
      which is clearly wrong. It should look as so:
      
        Xen: 00000000ff000000 - 0000000100000000 (reserved)
        Xen: 0000000100000000 - 000000027fbda000 (usable)
      
      Naturally this problem does not present itself if dom0_mem=max:X
      is used.
      
      CC: stable@kernel.org
      Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      e3b73c4a
  7. 11 9月, 2011 3 次提交
  8. 10 9月, 2011 3 次提交
  9. 09 9月, 2011 1 次提交
  10. 07 9月, 2011 6 次提交
  11. 05 9月, 2011 2 次提交
    • J
      openrisc: don't use pt_regs in struct sigcontext · d7cb6667
      Jonas Bonn 提交于
      As it was decided not to export struct pt_regs to userspace, struct
      sigcontext shouldn't be using it either.  The pt_regs struct for OpenRISC
      is kernel internal and the layout of the registers may change in the
      future.  The struct user_regs_struct is what is guaranteed to remain
      stable, so struct sigcontext may use that instead.
      
      This patch removes the usage of struct pt_regs in struct sigcontext and
      makes according changes in signal.c to get the register layout right.
      
      The usp field is removed from the sigcontext structure as this information
      is already contained in the user_regs_struct.
      Signed-off-by: NJonas Bonn <jonas@southpole.se>
      Reviewed-by: NEmilio Cota <cota@braap.org>
      d7cb6667
    • P
      OMAP2430: hwmod: musb: add missing terminator to omap2430_usbhsotg_addrs[] · 10167873
      Paul Walmsley 提交于
      Add a missing array terminator to omap2430_usbhsotg_addrs[].  Without
      this terminator, the omap_hwmod resource building code runs off the
      end of the array, resulting in at least this error -- if not worse
      behavior:
      
      [    0.578002] musb-omap2430: failed to claim resource 4
      [    0.583465] omap_device: musb-omap2430: build failed (-16)
      [    0.589294] Could not build omap_device for musb-omap2430 usb_otg_hs
      
      This should have been part of commit
      78183f3f ("omap_hwmod: use a null
      structure record to terminate omap_hwmod_addr_space arrays") but was
      evidently missed.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      10167873