1. 07 1月, 2011 30 次提交
  2. 09 12月, 2010 3 次提交
  3. 22 11月, 2010 2 次提交
  4. 18 11月, 2010 2 次提交
  5. 24 10月, 2010 3 次提交
    • M
      i7core_edac: return -ENODEV when devices were already probed · 76a7bd81
      Mauro Carvalho Chehab 提交于
      Due to the nature of i7core, we need to probe and attach all PCI
      devices used by this driver during the first time probe is called.
      However, PCI core will call the probe routine one time for each CPU
      socket. If we return -EINVAL to those calls, it would seem that the
      driver fails, when, in fact, there's no more devices left to initialize.
      
      Changing the return code to -ENODEV solves this issue.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      76a7bd81
    • M
      i7core_edac: properly terminate pci_dev_table · 3c52cc57
      Mauro Carvalho Chehab 提交于
      At pci_xeon_fixup(), it waits for a null-terminated table, while at
      i7core_get_all_devices, it just do a for 0..ARRAY_SIZE. As other tables
      are zero-terminated, change it to be terminate with 0 as well, and fixes
      a bug where it may be running out of the table elements.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      3c52cc57
    • M
      i7core_edac: Avoid PCI refcount to reach zero on successive load/reload · a3e15416
      Mauro Carvalho Chehab 提交于
      That's a nasty bug that took me a lot of time to track, and whose
      solution took just one line to solve. The best fragrances and the worse
      poisons are shipped on the smalest bottles.
      
      The drivers/pci/quick.c implements the pci_get_device function. The normal
      behavior is that you call it, the function returns you a pdev pointer
      and increment pdev->kobj.kref.refcount of the pci device. However,
      if you want to keep searching an object, you need to pass the previous
      pdev function to the search.
      
      When you use a not null pointer to pdev "from" field, pci_get_device
      will decrement pdev->kobj.kref.refcount, assuming that the driver won't
      be using the previous pdev.
      
      The solution is simple: we just need to call pci_dev_get() manually,
      for the pdev's that the driver will actually use.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      a3e15416