[4.4 regression] 46a7fd8a : pcnet32: use pci_set_dma_mask insted of pci_dma_supported
From: 허종만
Date: Wed Nov 11 2015 - 03:50:56 EST
Hi,
I'm using Fedora 23 Linux Guest on top of VMWare workstation (version 10), running on Windows 7 Host.
After pulling Merge branch 'akpm' from latest Linus git, my ethernet interface doesn't work.
From dmesg, I can see that pcnet32 doesn't support 32bit PCI busmaster DMA, as follows.
[ 1.616867] libphy: Fixed MDIO Bus: probed
[ 1.616871] pcnet32: pcnet32.c:v1.35 21.Apr.2008 tsbogend@xxxxxxxxxxxxxxxx
[ 1.617232] pcnet32: architecture does not support 32bit PCI busmaster DMA
[ 1.617304] VMware vmxnet3 virtual NIC driver - version 1.4.3.0-k-NAPI
Without the commit, pcnet32 ethernet is recognized correctly.
[ 1.173395] libphy: Fixed MDIO Bus: probed
[ 1.173399] pcnet32: pcnet32.c:v1.35 21.Apr.2008 tsbogend@xxxxxxxxxxxxxxxx
[ 1.173637] pcnet32: PCnet/PCI II 79C970A at 0x2000, 00:0c:29:07:e2:51 assigned IRQ 19
[ 1.173746] pcnet32: eth0: registered as PCnet/PCI II 79C970A
[ 1.173799] pcnet32: 1 cards_found
[ 1.173802] VMware vmxnet3 virtual NIC driver - version 1.4.2.0-k-NAPI
Below is git bisect log.
46a7fd8a9b302116b3263bc8e47f8f08c0d3a2ca is the first bad commit
commit 46a7fd8a9b302116b3263bc8e47f8f08c0d3a2ca
Author: Christoph Hellwig <hch@xxxxxx>
Date: Tue Nov 10 14:45:17 2015 -0800
pcnet32: use pci_set_dma_mask insted of pci_dma_supported
All drivers should be using dma_set_mask / pci_set_dma_mask to try to
set the dma mask instead of just querying it. Without that some iommu
implementations may not work.
pci_dma_supported is removed entirely, but dma_supported stays for
dma_ops implementations for now.
This patch (of 15):
This ensures the dma mask that is supported by the driver is recorded
in the device structure.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Acked-by: Don Fry <pcnet32@xxxxxxxxxxxx>
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
Cc: "James E.J. Bottomley" <jejb@xxxxxxxxxxxxxxxx>
Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
Cc: Alexandre Courbot <acourbot@xxxxxxxxxx>
Cc: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
Cc: Ben Skeggs <bskeggs@xxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Dave Airlie <airlied@xxxxxxxxxx>
Cc: David Airlie <airlied@xxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: Hans Verkuil <hverkuil@xxxxxxxxx>
Cc: Helge Deller <deller@xxxxxx>
Cc: Jiri Slaby <jslaby@xxxxxxxx>
Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Cc: Pawel Osciak <pawel@xxxxxxxxxx>
Cc: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
Cc: Sergey Kozlov <serjk@xxxxxxxx>
Cc: Shradha Shah <sshah@xxxxxxxxxxxxxx>
Cc: Solarflare linux maintainers <linux-net-drivers@xxxxxxxxxxxxxx>
Cc: Steven Toth <stoth@xxxxxxxxxxxxxx>
Cc: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
:040000 040000 dd0a67b69180edc5243578c8504cd2bd5d4efe24 1f92cb3d86111d725f4cf6a84076e8d9eee04362 M drivers
# git bisect log
git bisect start
# bad: [c5a37883f42be712a989e54d5d6c0159b0e56599] Merge branch 'akpm' (patches from Andrew)
git bisect bad c5a37883f42be712a989e54d5d6c0159b0e56599
# good: [ae36ce07abbdde3521dc0ef7e32143b88718cd21] Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
git bisect good ae36ce07abbdde3521dc0ef7e32143b88718cd21
# good: [be596aaa74090f553c61505ad03bb7a7460e5d23] Add current selection check.
git bisect good be596aaa74090f553c61505ad03bb7a7460e5d23
# good: [5dfe5b2c714a5bea0908c1e00da0e8e00535f55c] Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
git bisect good 5dfe5b2c714a5bea0908c1e00da0e8e00535f55c
# bad: [111be8b28d87769dfbde901602d262902575805d] cx88: use pci_set_dma_mask insted of pci_dma_supported
git bisect bad 111be8b28d87769dfbde901602d262902575805d
# good: [3368e8fbcda539e4f9d6cdb750f23c25021698c9] lib/string.c: add ULL suffix to the constant definition
git bisect good 3368e8fbcda539e4f9d6cdb750f23c25021698c9
# bad: [bad007bca7b7643fea786737071c86088ba2803b] tw68-core: use pci_set_dma_mask insted of pci_dma_supported
git bisect bad bad007bca7b7643fea786737071c86088ba2803b
# bad: [46a7fd8a9b302116b3263bc8e47f8f08c0d3a2ca] pcnet32: use pci_set_dma_mask insted of pci_dma_supported
git bisect bad 46a7fd8a9b302116b3263bc8e47f8f08c0d3a2ca
# first bad commit: [46a7fd8a9b302116b3263bc8e47f8f08c0d3a2ca] pcnet32: use pci_set_dma_mask insted of pci_dma_supported