1. 07 Jan, 2005 2 commits
    • David Mosberger's avatar
      [IA64] add hpzx1_swiotlb machine-vector · b733ce21
      David Mosberger authored
      I was in need of a 3.3V/dual-voltage-capable PCI sound-card and, as
      luck would have it, the only card of that sort in the local computer
      store was one that _still_ has a DMA engine that cannot even DMA to
      all 32 bits (it's limited to 28 bits).  Hard to believe, but true (the
      card in question is a "SoundBlaster Live! 24-bit" with a CA0106 chip;
      stay away from that one if you can...).
      
      Anyhow, since I don't like it when PCI cards don't work in my machine,
      I created the attached patch which adds a new machine-vector to enable
      support of such broken cards.
      
      With the patch applied, you can either configure the kernel for
      "HP-zx1/sx1000+swiotlb" or configure for "generic" and boot with
      option "machvec=hpzx1_swiotlb" to enable support for broken PCI
      devices.
      
      The patch works as follows: the new machvec implements a I/O MMU which
      will use the hardware I/O MMU whenever possible but fall back on the
      software I/O TLB when encountering a device that can't be supported by
      the hardware I/O MMU.  Fortunately, we don't have to mess with
      MAX_DMA_ADDRESS or create a new zone: the software I/O TLB allocates
      its memory as low as possible and early in the boot-process, so on any
      machine with low memory, we're pretty much guaranteed that we'll get a
      reasonable amount of low memory, which is all we need to properly support
      broken PCI cards.
      
      Note that I made a small change to swiotlb.c: I added a
      swiotlb_init_with_default_size() function to let the new I/O MMU
      initialize the software I/O TLB with less than 64MB (which is way too
      much for the limited uses we'll see for the broken PCI devices; for
      example, the CA0106 chip allocates only coherent buffers of about
      128KB).
      
      The patch has been tested on a zx1 machine in the generic, hpzx1, and
      hpzx1_swiotlb configuration.
      
      Thanks to Alex Williamson for the suggestion of doing this via a
      completely separate machvec.
      Signed-off-by: default avatarDavid Mosberger-Tang <davidm@hpl.hp.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      b733ce21
    • Jeff Garzik's avatar
      [PATCH] x86-64: kernel/sys.c build fix · 04c73690
      Jeff Garzik authored
      On x86-64, the attached patch is required to fix
      
      > kernel/sys.c: In function `sys_setsid':
      > kernel/sys.c:1078: error: `tty_sem' undeclared (first use in this function)
      > kernel/sys.c:1078: error: (Each undeclared identifier is reported only once
      > kernel/sys.c:1078: error: for each function it appears in.)
      
      kernel/sys.c needs the tty_sem declaration from linux/tty.h.
      04c73690
  2. 06 Jan, 2005 1 commit
  3. 07 Jan, 2005 12 commits
  4. 06 Jan, 2005 2 commits
    • Alexander Viro's avatar
      [PATCH] Fix up compiler inefficiencies · eb25b5b2
      Alexander Viro authored
      Oh, bugger...
      
      The recent mmzone.h change triggered some very, very ugly things in
      next_zone(), is_highmem(), is_normal() and zone_idx() because it changed
      the size of "struct zone" subtly.
      
      Pointer subtraction is no fun when sizeof of object gets weird and poor
      gcc blows its brains out trying to optimize that...  This slowed down an
      ARM cross-build by a factor of 2.5. 
      
      Turn the pointer subtraction tests into pointer addition tests instead
      where possible, making them trivial to deal with (and gets better code,
      in addition to faster compile).
      
      zone_idx() still does a subtraction.
      eb25b5b2
    • Linus Torvalds's avatar
      Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk · 1e95245b
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.6/linux
      1e95245b
  5. 07 Jan, 2005 3 commits
  6. 06 Jan, 2005 20 commits