[PATCH] Against sk98lin driver from syskonnect [was: Re: PCI-Expressnot working/unuseable on Intel 925XE since 2.6.12-rc1[mm1-4]]

From: Jacek Luczak
Date: Sat Apr 09 2005 - 08:16:41 EST


Bjorn Helgaas napisaÅ(a):
>>Version from syskonnect site require only changing usage of
>>pci_dev->slot_name to pci_name(pci_dev) in skge.c and skethtool.c. After
>>that everything should work fine. So I think there is no need to post my
>>path here but if you really whant I may do this. Whole path agains
>>2.6.12-rc2 take about 1.2 MB (diffstat attached below).
>
>
> I agree, no need to post a whole 1.2MB patch (goodness, what's
> in this driver, anyway, that it would need a 1.2MB *patch*? :-))

I'm wondering too :)

> But you seem to be saying that the driver from syskonnect (and possibly
> the one in 2.6.12-rc1-bk3 as well) does not work as-is, and that you have
> a small patch that makes it work.

The one that is in 2.6.12-rc1-bk2 and latest 2.6.13-rc2 doesn't work
with Marvell Yukon 88E8053 GigE.

Attached patch convert pci_dev->slot_name usage to pci_name() in skge.c
and skethtool.c. First you must apply patch generated by install script
and after that apply this patch:-)

Regards
Jacek

---

drivers/net/sk98lin/skethtool.c | 2 +-
drivers/net/sk98lin/skge.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

---

--- linux-2.6.12-rc2/drivers/net/sk98lin/skge.c 2005-04-09 14:49:39.000000000 +0200
+++ linux/drivers/net/sk98lin/skge.c 2005-04-09 02:04:49.000000000 +0200
@@ -4026,7 +4026,7 @@
*/
* ((SK_U32 *)pMemBuf) = 0;
* ((SK_U32 *)pMemBuf + 1) = pdev->bus->number;
- * ((SK_U32 *)pMemBuf + 2) = ParseDeviceNbrFromSlotName(pdev->slot_name);
+ * ((SK_U32 *)pMemBuf + 2) = ParseDeviceNbrFromSlotName(pci_name(pdev));
if(copy_to_user(Ioctl.pData, pMemBuf, Length) ) {
Err = -EFAULT;
goto fault_diag;
--- linux-2.6.12-rc2/drivers/net/sk98lin/skethtool.c 2005-04-09 14:49:39.000000000 +0200
+++ linux/drivers/net/sk98lin/skethtool.c 2005-04-09 02:04:49.000000000 +0200
@@ -1136,7 +1136,7 @@
strncpy(edrvinfo->driver, DRIVER_FILE_NAME , 32);
strncpy(edrvinfo->version, versionString , 32);
strncpy(edrvinfo->fw_version, "N/A", 32);
- strncpy(edrvinfo->bus_info, pAC->PciDev->slot_name, 32);
+ strncpy(edrvinfo->bus_info, pci_name(pAC->PciDev), 32);
#ifdef ETHTOOL_GSTATS
edrvinfo->n_stats = SK98LIN_STATS_LEN;
#endif