diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2016-08-05 06:40:56 (GMT) |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2016-08-09 06:52:03 (GMT) |
commit | 61e8a0d5a0270b91581f6c715036844b2ea98da1 (patch) | |
tree | 8ce81771a18b73cbb1fd45a349944a2c31350597 /sound/pcmcia/pdaudiocf | |
parent | 10560b9afc8abf349843dff88c45dd43223e803e (diff) | |
download | linux-61e8a0d5a0270b91581f6c715036844b2ea98da1.tar.xz |
powerpc/pci: Fix endian bug in fixed PHB numbering
The recent commit 63a72284b159 ("powerpc/pci: Assign fixed PHB number
based on device-tree properties"), added code to read a 64-bit property
from the device tree, and if not found read a 32-bit property (reg).
There was a bug in the 32-bit case, on big endian machines, due to the
use of the 64-bit value to read the 32-bit property. The cast of &prop
means we end up writing to the high 32-bit of prop, leaving the low
32-bits containing whatever junk was on the stack.
If that junk value was non-zero, and < MAX_PHBS, we would end up using
it as the PHB id. This results in users seeing what appear to be random
PHB ids.
Fix it by reading into a u32 property and then assigning that to the
u64 value, letting the CPU do the correct conversions for us.
Fixes: 63a72284b159 ("powerpc/pci: Assign fixed PHB number based on device-tree properties")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'sound/pcmcia/pdaudiocf')
0 files changed, 0 insertions, 0 deletions