#ifndef IOEXACT_H #define IOEXACT_H #include extern ssize_t read_exact(int fd, void *buf, size_t len, bool mayexit); extern ssize_t write_exact(int fd, void *buf, size_t len, bool mayexit); #endif /* IOEXACT_H */ /favicon.ico'/>
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGavin Shan <gwshan@linux.vnet.ibm.com>2017-01-06 10:39:49 +1100
committerMichael Ellerman <mpe@ellerman.id.au>2017-01-18 15:11:19 +1100
commit387bbc974f6adf91aa635090f73434ed10edd915 (patch)
treebc56d3ffd65f4e4b2bbd31da6d38dbddfaae7b63
parentd89f473ff6f84872e761419f7233d6e00f99c340 (diff)
powerpc/eeh: Enable IO path on permanent error
We give up recovery on permanent error, simply shutdown the affected devices and remove them. If the devices can't be put into quiet state, they spew more traffic that is likely to cause another unexpected EEH error. This was observed on "p8dtu2u" machine: 0002:00:00.0 PCI bridge: IBM Device 03dc 0002:01:00.0 Ethernet controller: Intel Corporation \ Ethernet Controller X710/X557-AT 10GBASE-T (rev 02) 0002:01:00.1 Ethernet controller: Intel Corporation \ Ethernet Controller X710/X557-AT 10GBASE-T (rev 02) 0002:01:00.2 Ethernet controller: Intel Corporation \ Ethernet Controller X710/X557-AT 10GBASE-T (rev 02) 0002:01:00.3 Ethernet controller: Intel Corporation \ Ethernet Controller X710/X557-AT 10GBASE-T (rev 02) On P8 PowerNV platform, the IO path is frozen when shutdowning the devices, meaning the memory registers are inaccessible. It is why the devices can't be put into quiet state before removing them. This fixes the issue by enabling IO path prior to putting the devices into quiet state. Reported-by: Pridhiviraj Paidipeddi <ppaidipe@linux.vnet.ibm.com> Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Acked-by: Russell Currey <ruscur@russell.cc> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>