1. 01 8月, 2007 1 次提交
  2. 31 7月, 2007 1 次提交
  3. 30 7月, 2007 1 次提交
  4. 25 7月, 2007 1 次提交
  5. 22 7月, 2007 2 次提交
  6. 20 7月, 2007 1 次提交
  7. 17 7月, 2007 3 次提交
  8. 12 7月, 2007 25 次提交
  9. 10 7月, 2007 1 次提交
  10. 14 6月, 2007 1 次提交
    • B
      [POWERPC] Rewrite IO allocation & mapping on powerpc64 · 3d5134ee
      Benjamin Herrenschmidt 提交于
      This rewrites pretty much from scratch the handling of MMIO and PIO
      space allocations on powerpc64.  The main goals are:
      
       - Get rid of imalloc and use more common code where possible
       - Simplify the current mess so that PIO space is allocated and
         mapped in a single place for PCI bridges
       - Handle allocation constraints of PIO for all bridges including
         hot plugged ones within the 2GB space reserved for IO ports,
         so that devices on hotplugged busses will now work with drivers
         that assume IO ports fit in an int.
       - Cleanup and separate tracking of the ISA space in the reserved
         low 64K of IO space. No ISA -> Nothing mapped there.
      
      I booted a cell blade with IDE on PIO and MMIO and a dual G5 so
      far, that's it :-)
      
      With this patch, all allocations are done using the code in
      mm/vmalloc.c, though we use the low level __get_vm_area with
      explicit start/stop constraints in order to manage separate
      areas for vmalloc/vmap, ioremap, and PCI IOs.
      
      This greatly simplifies a lot of things, as you can see in the
      diffstat of that patch :-)
      
      A new pair of functions pcibios_map/unmap_io_space() now replace
      all of the previous code that used to manipulate PCI IOs space.
      The allocation is done at mapping time, which is now called from
      scan_phb's, just before the devices are probed (instead of after,
      which is by itself a bug fix). The only other caller is the PCI
      hotplug code for hot adding PCI-PCI bridges (slots).
      
      imalloc is gone, as is the "sub-allocation" thing, but I do beleive
      that hotplug should still work in the sense that the space allocation
      is always done by the PHB, but if you unmap a child bus of this PHB
      (which seems to be possible), then the code should properly tear
      down all the HPTE mappings for that area of the PHB allocated IO space.
      
      I now always reserve the first 64K of IO space for the bridge with
      the ISA bus on it. I have moved the code for tracking ISA in a separate
      file which should also make it smarter if we ever are capable of
      hot unplugging or re-plugging an ISA bridge.
      
      This should have a side effect on platforms like powermac where VGA IOs
      will no longer work. This is done on purpose though as they would have
      worked semi-randomly before. The idea at this point is to isolate drivers
      that might need to access those and fix them by providing a proper
      function to obtain an offset to the legacy IOs of a given bus.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      3d5134ee
  11. 01 6月, 2007 3 次提交
    • E
      msi: mask the msix vector before we unmap it · 78b7611c
      Eric W. Biederman 提交于
      With these two lines in the reverse order the drives/block/ccis.c was
      oopsing in msi_free_irqs.  Silly us calling writel on an area after
      we unmap it.
      
      BUG: unable to handle kernel paging request at virtual address f8b2200c
       printing eip:
      c01e9cc7
      *pdpt = 0000000000003001
      *pde = 0000000037e48067
      *pte = 0000000000000000
      Oops: 0002 [#1]
      SMP
      Modules linked in: cciss ipv6 parport_pc lp parport autofs4 i2c_dev i2c_core
      sunrpc loop dm_multipath button battery asus_acpi ac tg3 floppy sg dm_snapshot
      dm_zero dm_mirror ext3 jbd dm_mod ata_piix libata mptsas scsi_transport_sas
      mptspi scsi_transport_spi mptscsih mptbase sd_mod scsi_mod
      CPU:    1
      EIP:    0060:[<c01e9cc7>]    Not tainted VLI
      EFLAGS: 00010286   (2.6.22-rc2-gd2579053 #1)
      EIP is at msi_free_irqs+0x81/0xbe
      eax: f8b22000   ebx: f71f3180   ecx: f7fff280   edx: c1886eb8
      esi: f7c4e800   edi: f7c4ec48   ebp: 00000002   esp: f5a0dec8
      ds: 007b   es: 007b   fs: 00d8  gs: 0033  ss: 0068
      Process rmmod (pid: 5286, ti=f5a0d000 task=c47d2550 task.ti=f5a0d000)
      Stack: 00000002 f8b72294 00000400 f8b69ca7 f8b6bc6c 00000002 00000000 00000000
             00000000 00000000 00000000 f5a997f4 f8b69d61 f7c5a4b0 f7c4e848 f7c4e848
             f7c4e800 f7c4e800 f8b72294 f7c4e848 f8b72294 c01e3cdf f7c4e848 c024c469
      Call Trace:
       [<f8b69ca7>] cciss_shutdown+0xae/0xc3 [cciss]
       [<f8b69d61>] cciss_remove_one+0xa5/0x178 [cciss]
       [<c01e3cdf>] pci_device_remove+0x16/0x35
       [<c024c469>] __device_release_driver+0x71/0x8e
       [<c024c56e>] driver_detach+0xa0/0xde
       [<c024bc5c>] bus_remove_driver+0x27/0x41
       [<c01e3ef3>] pci_unregister_driver+0xb/0x13
       [<f8b6a343>] cciss_cleanup+0xf/0x51 [cciss]
       [<c0139ced>] sys_delete_module+0x110/0x135
       [<c0104c7a>] sysenter_past_esp+0x5f/0x85
      
      Here's a patch that just reverses the 2 lines of code as Eric suggests. Please
      consider this for inclusion.
      Signed-off-by: NMike Miller <mike.miller@hp.com>
      Signed-off-by: NChase Maupin <chase.maupin@hp.com>
      Signed-off-by: N"Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      78b7611c
    • E
      msi: fix the ordering of msix irqs · 0dd11f9b
      Eric W. Biederman 提交于
      "Mike Miller (OS Dev)" <mikem@beardog.cca.cpqcorp.net> writes:
      
      Found what seems the problem with our vectors being listed backward.  In
      drivers/pci/msi.c we should be using list_add_tail rather than list_add to
      preserve the ordering across various kernels.  Please consider this for
      inclusion.
      Signed-off-by: N"Eric W. Biederman" <ebiederm@xmission.com>
      Screwed-up-by: NMichael Ellerman <michael@ellerman.id.au>
      Cc: "Mike Miller (OS Dev)" <mikem@beardog.cca.cpqcorp.net>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0dd11f9b
    • J
      PCI: quirk disable MSI on via vt3351 · 184b812f
      Jay Cliburn 提交于
      The Via VT3351 APIC does not play well with MSI and unleashes a flood
      of APIC errors when MSI is used to deliver interrupts.  The problem
      was recently exposed when the atl1 network device driver, which enables
      MSI by default, stimulated APIC errors on an Asus M2V mainboard, which
      employs the Via VT3351.
      See http://bugzilla.kernel.org/show_bug.cgi?id=8472 for additional
      details on this bug.
      Signed-off-by: NJay Cliburn <jacliburn@bellsouth.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      184b812f