From: Linas Vepstas Date: Mon, 10 Jul 2006 11:44:46 +0000 (-0700) Subject: [PATCH] pci: initialize struct pci_dev.error_state X-Git-Tag: v2.6.18-rc2~185 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=82081797b7d72108a47c82997349d1ea6a3eb3d5;p=linux-2.6 [PATCH] pci: initialize struct pci_dev.error_state The pci channel state is currently uninitialized, thus there are two ways of indicating that "everything's OK": 0 and 1. This is a bit of a burden. If a devce driver wants to check if the pci channel is in a working or a disconnected state, the driver writer must perform checks similar to if((pdev->error_state != 0) && (pdev->error_state != pci_channel_io_normal)) { whatever(); } which is rather akward. The first check is needed because stuct pci_dev is inited to all-zeros. The scond is needed because the error recovery will set the state to pci_channel_io_normal (which is not zero). This patch fixes this awkwardness. Signed-off-by: Linas Vepstas Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index f89dbc3738..c5a58d1c6c 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -815,6 +815,7 @@ pci_scan_device(struct pci_bus *bus, int devfn) dev->vendor = l & 0xffff; dev->device = (l >> 16) & 0xffff; dev->cfg_size = pci_cfg_space_size(dev); + dev->error_state = pci_channel_io_normal; /* Assume 32-bit PCI; let 64-bit PCI cards (which are far rarer) set this higher, assuming the system even supports it. */