OpenCloudOS-Kernel/arch/powerpc/platforms/pseries
Guilherme G. Piccoli 8445a87f70 powerpc/iommu: Remove the dependency on EEH struct in DDW mechanism
Commit 39baadbf36 ("powerpc/eeh: Remove eeh information from pci_dn")
changed the pci_dn struct by removing its EEH-related members.
As part of this clean-up, DDW mechanism was modified to read the device
configuration address from eeh_dev struct.

As a consequence, now if we disable EEH mechanism on kernel command-line
for example, the DDW mechanism will fail, generating a kernel oops by
dereferencing a NULL pointer (which turns to be the eeh_dev pointer).

This patch just changes the configuration address calculation on DDW
functions to a manual calculation based on pci_dn members instead of
using eeh_dev-based address.

No functional changes were made. This was tested on pSeries, both
in PHyp and qemu guest.

Fixes: 39baadbf36 ("powerpc/eeh: Remove eeh information from pci_dn")
Cc: stable@vger.kernel.org # v3.4+
Reviewed-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-05-12 19:52:21 +10:00
..
Kconfig powerpc/pseries: Drop always true CONFIG_PSERIES_MSI 2015-10-15 20:31:56 +11:00
Makefile powerpc/pseries: Drop always true CONFIG_PSERIES_MSI 2015-10-15 20:31:56 +11:00
cmm.c powerpc/pseries: Drop unnecessary continue 2014-09-23 11:00:40 +10:00
dlpar.c powerpc/pseries: Enable kernel CPU dlpar from sysfs 2015-12-17 22:41:03 +11:00
dtl.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
eeh_pseries.c powerpc/pseries: Cleanup on pseries_eeh_get_state() 2015-10-21 20:42:14 +11:00
event_sources.c of/irq: simplify args to irq_create_of_mapping 2013-10-24 11:42:57 +01:00
firmware.c powerpc/pseries: Update CPU maps when device tree is updated 2013-04-26 16:08:23 +10:00
hotplug-cpu.c param: convert some "on"/"off" users to strtobool 2016-03-17 15:09:34 -07:00
hotplug-memory.c powerpc/pseries: Update LMB associativity index during DLPAR add/remove 2016-04-11 11:23:39 +10:00
hvCall.S powerpc, jump_label: Include linux/jump_label.h to get HAVE_JUMP_LABEL define 2015-04-09 09:40:29 +02:00
hvCall_inst.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
hvconsole.c powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
hvcserver.c powerpc/pseries/hvcserver: don't memset pi_buff if it is null 2015-10-09 08:03:03 +11:00
io_event_irq.c powerpc/le: Enable RTAS events support 2014-04-07 10:33:12 +10:00
iommu.c powerpc/iommu: Remove the dependency on EEH struct in DDW mechanism 2016-05-12 19:52:21 +10:00
kexec.c pseries: Move plpar_wrapper.h to powerpc common include/asm location. 2013-08-27 14:43:05 +10:00
lpar.c powerpc/mm/radix: Isolate hash table function from pseries guest code 2016-05-11 21:53:46 +10:00
lparcfg.c powerpc/mm/radix: Isolate hash table function from pseries guest code 2016-05-11 21:53:46 +10:00
mobility.c powerpc: Update of_remove_property() call sites to remove null checking 2016-05-11 21:54:04 +10:00
msi.c powerpc/pci: Export pci_traverse_device_nodes() 2016-05-11 21:54:25 +10:00
nvram.c powerpc/rtas: Make timestamp related code y2038-safe 2015-03-23 14:06:11 +11:00
of_helpers.c powerpc/pseries: Correct string length in pseries_of_derive_parent() 2015-10-28 12:08:18 +09:00
of_helpers.h powerpc/pseries: extract of_helpers module 2015-10-05 21:11:24 +11:00
offline_states.h powerpc/smp: soft-replugged CPUs must go back to start_secondary 2011-04-01 15:37:09 +11:00
pci.c powerpc/pseries: Quieten ibm,pcie-link-speed-stats warning 2014-11-10 09:59:33 +11:00
pci_dlpar.c powerpc/pci: Move pci_find_bus_by_node() around 2016-05-11 21:54:24 +10:00
power.c powerpc/pseries: Switch pseries drivers to use machine_xxx_initcall() 2014-07-28 14:11:26 +10:00
pseries.h powerpc/pseries: Add CPU dlpar remove functionality 2015-12-17 22:41:02 +11:00
pseries_energy.c powerpc: Fix a number of sparse warnings 2013-08-14 11:50:24 +10:00
ras.c powerpc/pseries: Limit EPOW reset event warnings 2015-12-14 20:41:49 +11:00
reconfig.c powerpc: Update of_remove_property() call sites to remove null checking 2016-05-11 21:54:04 +10:00
rng.c powerpc: Use hardware RNG for arch_get_random_seed_* not arch_get_random_* 2015-07-23 19:52:03 +10:00
scanlog.c ppc: Clean up scanlog 2013-05-01 17:29:45 -04:00
setup.c powerpc/pci: Export pci_add_device_node_info() 2016-05-11 21:54:24 +10:00
smp.c powerpc: Drop return value of smp_ops->probe() 2015-04-10 20:02:49 +10:00
suspend.c powerpc/pseries: Switch pseries drivers to use machine_xxx_initcall() 2014-07-28 14:11:26 +10:00