tree 57f76e124dcccc1a84dfe0655e213d3a28351e91
parent 1a84b99ccbb954ce201024691babfe4d7d9f506f
author Bjorn Helgaas <bhelgaas@google.com> 1387051576 -0700
committer Bjorn Helgaas <bhelgaas@google.com> 1387148852 -0700

PCI: pciehp: Make various functions void since they can't fail

These functions:

  pcie_enable_notification()
  pciehp_power_off_slot()
  pciehp_get_power_status()
  pciehp_get_attention_status()
  pciehp_set_attention_status()
  pciehp_get_latch_status()
  pciehp_get_adapter_status()
  pcie_write_cmd()

now always return success, so this patch makes them void and drops the
error-checking code in their callers.

No functional change.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>