diff -Naur nvnet/Makefile nvnet-2.5/Makefile --- nvnet/Makefile 2003-05-06 16:39:38.000000000 -0300 +++ nvnet-2.5/Makefile 2003-07-10 23:51:29.000000000 -0300 @@ -21,7 +21,7 @@ # # Target # -TARGET = $(MODULE_NAME).o +TARGET = $(MODULE_NAME).ko # # Networking library @@ -76,7 +76,8 @@ 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) + -DKBUILD_BASENAME=nvnet -DKBUILD_MODNAME=nvnet -fno-common \ + -DMODULE -I$(SYSINCLUDE) -I$(SYSINCLUDE)/asm/mach-default $(ARCHDEFS) # # Kernel version @@ -103,10 +104,17 @@ all: $(TARGET) -$(TARGET): $(SRC) $(NVNETLIB) $(MCPINCLUDE) +nvnet.o: $(SRC) $(CC) $(CFLAGS) $(SRC) - ld -r -o $(TEMP) $(OBJ) $(NVNETLIB) - $(OBJCOPY) --strip-symbol="gcc2_compiled." $(TEMP) + +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) cp $(TEMP) $(TARGET) rm $(TEMP) @@ -139,4 +147,4 @@ # Delete generated files # clean: - rm -f $(TARGET) + rm -f $(TARGET) nvnet.o *.mod.c *.mod.o diff -Naur nvnet/nvnet.c nvnet-2.5/nvnet.c --- nvnet/nvnet.c 2003-05-06 16:39:38.000000000 -0300 +++ nvnet-2.5/nvnet.c 2003-07-15 20:26:52.000000000 -0300 @@ -26,6 +26,9 @@ char *common_hdO_version_string = HDO_VERSION_STRING; char *common_hdP_version_string = HDP_VERSION_STRING; +// fix for common symbol exported by nvnetlib.o +char* aPhyAddrAndId[256]; + /* * Driver information */ @@ -753,7 +756,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 +768,7 @@ irq, dev_instance, regs); if(!dev) - return; + return IRQ_NONE; if(priv->hwapi->pfnQueryInterrupt(priv->hwapi->pADCX)) { @@ -776,6 +779,8 @@ PRINTK(DEBUG_INTR, "nvnet_interrupt - Out\n"); + return IRQ_HANDLED; + } static int nvnet_close(struct net_device *dev) @@ -1127,6 +1132,7 @@ priv->pdev = pdev; SET_MODULE_OWNER(dev); + SET_NETDEV_DEV(dev, &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 -Naur nvnet/nvnet.h nvnet-2.5/nvnet.h --- nvnet/nvnet.h 2003-05-06 16:39:38.000000000 -0300 +++ nvnet-2.5/nvnet.h 2003-06-14 12:36:47.000000000 -0300 @@ -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 */