1. 22 Apr, 2006 5 commits
    • Mike Waychison's avatar
      [PATCH] x86_64: Fix a race in the free_iommu path · 5b201927
      Mike Waychison authored
      We do this by removing a micro-optimization that tries to avoid grabbing
      the iommu_bitmap_lock spinlock and using a bus-locked operation.
      
      This still races with other simultaneous alloc_iommu or free_iommu(size >
      1) which both use bus-unlocked operations.
      
      The end result of this race is eventually ending up with an
      iommu_gart_bitmap that has bits errornously set all over, making large
      contiguous iommu space allocations fail with 'PCI-DMA: Out of IOMMU space'.
      Signed-off-by: default avatarMike Waychison <mikew@google.com>
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      5b201927
    • Andi Kleen's avatar
      [PATCH] x86_64: Pass -32 to the assembler when compiling the 32bit vsyscall pages · ddbe3eec
      Andi Kleen authored
      This quietens warnings and actually fixes a bug.  The unwind tables would
      come out wrong without -32, causing pthread cancellation during them to
      crash in the gcc runtime.
      
      The problem seems to only happen with newer binutils (it doesn't happen
      with 2.16.91.0.2 but happens wit 2.16.91.0.5)
      
      Thanks to David Altobelli <david.altobelli@hp.com> and Brian Baker
      <Brian.B@hp.com> for test case and initial analysis.
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ddbe3eec
    • Lee Schermerhorn's avatar
      [PATCH] add migratepage address space op to shmem · 304dbdb7
      Lee Schermerhorn authored
      Basic problem: pages of a shared memory segment can only be migrated once.
      
      In 2.6.16 through 2.6.17-rc1, shared memory mappings do not have a
      migratepage address space op.  Therefore, migrate_pages() falls back to
      default processing.  In this path, it will try to pageout() dirty pages.
      Once a shared memory page has been migrated it becomes dirty, so
      migrate_pages() will try to page it out.  However, because the page count
      is 3 [cache + current + pte], pageout() will return PAGE_KEEP because
      is_page_cache_freeable() returns false.  This will abort all subsequent
      migrations.
      
      This patch adds a migratepage address space op to shared memory segments to
      avoid taking the default path.  We use the "migrate_page()" function
      because it knows how to migrate dirty pages.  This allows shared memory
      segment pages to migrate, subject to other conditions such as # pte's
      referencing the page [page_mapcount(page)], when requested.
      
      I think this is safe.  If we're migrating a shared memory page, then we
      found the page via a page table, so it must be in memory.
      
      Can be verified with memtoy and the shmem-mbind-test script, both
      available at:  http://free.linux.hp.com/~lts/Tools/Signed-off-by: default avatarLee Schermerhorn <lee.schermerhorn@hp.com>
      Acked-by: default avatarChristoph Lameter <clameter@sgi.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      304dbdb7
    • Andy Whitcroft's avatar
      [PATCH] x86_64: sparsemem does not need node_mem_map · 3b5fd59f
      Andy Whitcroft authored
      Seems we are trying to init the node_mem_map when we don't need to, for
      example when SPARSEMEM is enabled.  This causes the error below during
      compilation.  Use CONFIG_FLAT_NODE_MEM_MAP to gate allocation and init.
      
        arch/x86_64/mm/numa.c: In function `setup_node_zones':
        arch/x86_64/mm/numa.c:191: error: structure has no member
                                                        named `node_mem_map'
      Signed-off-by: default avatarAndy Whitcroft <apw@shadowen.org>
      Acked-by: default avatarAndi Kleen <ak@muc.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3b5fd59f
    • Tilman Schmidt's avatar
      [PATCH] isdn4linux: Siemens Gigaset base driver: fix disconnect handling · 73a88814
      Tilman Schmidt authored
      Fix a possible Oops in the Siemens Gigaset base driver when the device is
      unplugged while an ISDN connection is still active, and makes sure that the
      isdn4linux link level (LL) is properly informed if a connection is broken
      by the USB cable being unplugged.
      
      - Avoid unsafe checks of URB status fields outside the URB completion
        handlers, keep track of in-use URBs myself instead.
      
      - If an isochronous transfer URB completes with status==0, also check the
        status of the frame descriptors.
      
      - Verify length of interrupt messages received from the device.
      
      - Align the length limit on transmitted AT commands with the device
        documentation.
      
      - In case of AT response receive overrun, keep newly arrived instead of old
        unread data.
      
      - Remove redundant check of device ID in the USB probe function.
      
      - Correct and improve some comments and formatting.
      Signed-off-by: default avatarTilman Schmidt <tilman@imap.cc>
      Acked-by: default avatarHansjoerg Lipp <hjlipp@web.de>
      Cc: Karsten Keil <kkeil@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      73a88814
  2. 20 Apr, 2006 35 commits