diff -urN nforce-2.4/nvnet/Makefile nforce-2.6/nvnet/Makefile --- nforce-2.4/nvnet/Makefile 2003-05-06 15:39:38.000000000 -0400 +++ nforce-2.6/nvnet/Makefile 2003-07-25 18:05:18.000000000 -0400 @@ -21,7 +21,7 @@ # # Target # -TARGET = $(MODULE_NAME).o +TARGET = $(MODULE_NAME).ko # # Networking library @@ -73,10 +73,11 @@ # # CFlags # -CFLAGS = -c -Wall -DLINUX -DMODULE -DEXPORT_SYMTAB -D__KERNEL__ -O \ - -Wstrict-prototypes -DCONFIG_PM -fno-strict-aliasing \ - -mpreferred-stack-boundary=2 -march=i686 $(ALIGN) \ - -DMODULE -I$(SYSINCLUDE) $(ARCHDEFS) +CFLAGS = -c -Wall -DLINUX -DMODULE -DEXPORT_SYMTAB -DKBUILD_MODNAME=nvnet \ + -D__KERNEL__ -O \ + -Wstrict-prototypes -DCONFIG_PM -fno-strict-aliasing -fno-common \ + -mpreferred-stack-boundary=2 -march=i686 $(ALIGN) \ + -DMODULE -I$(SYSINCLUDE) -I$(KERNSRC)/include/asm/mach-default $(ARCHDEFS) # # Kernel version @@ -103,9 +104,17 @@ all: $(TARGET) -$(TARGET): $(SRC) $(NVNETLIB) $(MCPINCLUDE) +nvnet.o: $(SRC) $(CC) $(CFLAGS) $(SRC) - ld -r -o $(TEMP) $(OBJ) $(NVNETLIB) + +nvnet.mod.c: nvnet.o + $(KERNSRC)/scripts/modpost nvnet.o + +nvnet.mod.o: nvnet.mod.c + $(CC) $(CFLAGS) nvnet.mod.c + +$(TARGET): nvnet.o nvnet.mod.o $(NVNETLIB) + ld -r -o $(TEMP) nvnet.o nvnet.mod.o $(NVNETLIB) $(OBJCOPY) --strip-symbol="gcc2_compiled." $(TEMP) cp $(TEMP) $(TARGET) rm $(TEMP) @@ -139,4 +148,4 @@ # Delete generated files # clean: - rm -f $(TARGET) + rm -f $(TARGET) nvnet.o *.mod.c *.mod.o diff -urN nforce-2.4/nvnet/nvnet.c nforce-2.6/nvnet/nvnet.c --- nforce-2.4/nvnet/nvnet.c 2003-05-06 15:39:38.000000000 -0400 +++ nforce-2.6/nvnet/nvnet.c 2003-07-25 18:08:15.000000000 -0400 @@ -26,6 +26,9 @@ char *common_hdO_version_string = HDO_VERSION_STRING; char *common_hdP_version_string = HDP_VERSION_STRING; +// fix for common synbol exported by nvnetlib.o +char *aPhyAddrAndId[256]; + /* * Driver information */ @@ -719,7 +722,8 @@ if(status != ADAPTERERR_NONE) { - free_irq(dev->irq, dev); + module_put(THIS_MODULE); + free_irq(dev->irq, dev); PRINTK_ERROR("nvnet_init - ADAPTER_Open failed\n"); PRINTK(DEBUG_INIT, "nvnet_init - Out\n"); return -EAGAIN; @@ -737,6 +741,7 @@ PRINTK_ERROR("nvnet_open - request_irq failed\n"); PRINTK(DEBUG_OPEN, "nvnet_open - Out\n"); + module_put(THIS_MODULE); return -EAGAIN; } @@ -753,7 +758,7 @@ } -static void nvnet_interrupt(int irq, void *dev_instance, struct pt_regs *regs) +static irqreturn_t nvnet_interrupt(int irq, void *dev_instance, struct pt_regs *regs) { struct net_device *dev; struct nvnet_private *priv; @@ -765,7 +770,7 @@ irq, dev_instance, regs); if(!dev) - return; + return IRQ_NONE; if(priv->hwapi->pfnQueryInterrupt(priv->hwapi->pADCX)) { @@ -776,6 +781,7 @@ PRINTK(DEBUG_INTR, "nvnet_interrupt - Out\n"); + return IRQ_HANDLED; } static int nvnet_close(struct net_device *dev) @@ -796,7 +802,7 @@ free_irq(dev->irq, dev); - + module_put(THIS_MODULE); PRINTK(DEBUG_OPEN, "nvnet_close - OUT\n"); return 0; } @@ -1126,7 +1132,7 @@ priv->pdev = pdev; - SET_MODULE_OWNER(dev); + SET_MODULE_OWNER(&(pdev->dev)); priv->regs = (char *)memptr; pci_set_master(pdev); @@ -1245,7 +1251,7 @@ */ static void __devexit nvnet_remove(struct pci_dev *pdev) { - struct net_device *dev = pdev->driver_data; + struct net_device *dev = pci_get_drvdata(pdev); struct nvnet_private *priv = dev->priv; int i; diff -urN nforce-2.4/nvnet/nvnet.h nforce-2.6/nvnet/nvnet.h --- nforce-2.4/nvnet/nvnet.h 2003-05-06 15:39:38.000000000 -0400 +++ nforce-2.6/nvnet/nvnet.h 2003-07-25 18:03:23.000000000 -0400 @@ -104,7 +104,7 @@ static struct net_device_stats *nvnet_stats(struct net_device *dev); static int nvnet_config(struct net_device *dev, struct ifmap *map); static int nvnet_init(struct net_device *dev); -static void nvnet_interrupt(int irq, void *dev_instance, struct pt_regs *regs); +static irqreturn_t nvnet_interrupt(int irq, void *dev_instance, struct pt_regs *regs); static void nvnet_multicast(struct net_device *dev); typedef enum {fail, pass} result; /* Boolean pass/fail results */