Skip to content

Commit

Permalink
[POWERPC] EEH failure to mark pci slot as frozen.
Browse files Browse the repository at this point in the history
Bug fix: when marking a slot as frozen, we forgot to mark
pci device itself as frozen. (we did manage to mark the
pci children, but forget the parent itself.)

This is needed so that some device drivers can check the
pci status in critical sections (e.g. in spin loops with
interrupts disabled).

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Linas Vepstas authored and Paul Mackerras committed Sep 26, 2006
1 parent 2cec1b4 commit 022d51b
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions arch/powerpc/platforms/pseries/eeh.c
Original file line number Diff line number Diff line change
Expand Up @@ -225,13 +225,20 @@ static void __eeh_mark_slot (struct device_node *dn, int mode_flag)

void eeh_mark_slot (struct device_node *dn, int mode_flag)
{
struct pci_dev *dev;
dn = find_device_pe (dn);

/* Back up one, since config addrs might be shared */
if (PCI_DN(dn) && PCI_DN(dn)->eeh_pe_config_addr)
dn = dn->parent;

PCI_DN(dn)->eeh_mode |= mode_flag;

/* Mark the pci device too */
dev = PCI_DN(dn)->pcidev;
if (dev)
dev->error_state = pci_channel_io_frozen;

__eeh_mark_slot (dn->child, mode_flag);
}

Expand Down

0 comments on commit 022d51b

Please sign in to comment.