diff mbox

powerpc: Fix crash introduced with commit 5657933dbb6e

Message ID 20170310023351.973-1-Larry.Finger@lwfinger.net (mailing list archive)
State Accepted
Headers show

Commit Message

Larry Finger March 10, 2017, 2:33 a.m. UTC
Code inserted during the code merged between kernels 4.10 and 4.11-rc1
caused an early panic quickly followed by a complete shutdown for
PowerPC. The traceback was not displayed long enough to read or
photograph, thus it is not reproduced here.

The problem was bisected to commit 5657933dbb6e ("treewide: Move dma_ops
from struct dev_archdata into struct device"). The problem was a missing
copy of critical information from struct dev_archdata into struct device,
leading to the dereference of a null pointer.

This fix was suggested by Benjamin Herrenschmidt.

Fixes: commit 5657933dbb6e ("treewide: Move dma_ops from struct dev_archdata into struct device")
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: regressions@leemhuis.info <regressions@leemhuis.info>

 drivers/macintosh/macio_asic.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Linus Torvalds March 11, 2017, 5:07 p.m. UTC | #1
On Thu, Mar 9, 2017 at 6:33 PM, Larry Finger <Larry.Finger@lwfinger.net> wrote:
>
> The problem was bisected to commit 5657933dbb6e ("treewide: Move dma_ops
> from struct dev_archdata into struct device"). The problem was a missing
> copy of critical information from struct dev_archdata into struct device,
> leading to the dereference of a null pointer.
>
> This fix was suggested by Benjamin Herrenschmidt.

I'm assuming I'll be getting this through the powerpc tree. Holler if
that isn't the case.

                Linus
Michael Ellerman March 14, 2017, 11:46 a.m. UTC | #2
On Fri, 2017-03-10 at 02:33:51 UTC, Larry Finger wrote:
> Code inserted during the code merged between kernels 4.10 and 4.11-rc1
> caused an early panic quickly followed by a complete shutdown for
> PowerPC. The traceback was not displayed long enough to read or
> photograph, thus it is not reproduced here.
> 
> The problem was bisected to commit 5657933dbb6e ("treewide: Move dma_ops
> from struct dev_archdata into struct device"). The problem was a missing
> copy of critical information from struct dev_archdata into struct device,
> leading to the dereference of a null pointer.
> 
> This fix was suggested by Benjamin Herrenschmidt.
> 
> Fixes: commit 5657933dbb6e ("treewide: Move dma_ops from struct dev_archdata into struct device")
> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
> Cc: linuxppc-dev@lists.ozlabs.org
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Cc: regressions@leemhuis.info <regressions@leemhuis.info>

Applied to powerpc fixes, thanks.

https://git.kernel.org/powerpc/c/46f401c4297a2232a037ad8801b6c8

cheers
diff mbox

Patch

diff --git a/drivers/macintosh/macio_asic.c b/drivers/macintosh/macio_asic.c
index 3f041b1..f757cef2 100644
--- a/drivers/macintosh/macio_asic.c
+++ b/drivers/macintosh/macio_asic.c
@@ -392,6 +392,7 @@  static struct macio_dev * macio_add_one_device(struct macio_chip *chip,
 	 * To get all the fields, copy all archdata
 	 */
 	dev->ofdev.dev.archdata = chip->lbus.pdev->dev.archdata;
+	dev->ofdev.dev.dma_ops = chip->lbus.pdev->dev.dma_ops;
 #endif /* CONFIG_PCI */
 
 #ifdef DEBUG