diff options
| author | Linus Torvalds <torvalds@home.transmeta.com> | 2003-04-16 07:43:17 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2003-04-16 07:43:17 -0700 |
| commit | 98af522fee77e0a109a0a07221fbdce5e0b00116 (patch) | |
| tree | 311326a0b859844bec023213e7fc819fc505a717 | |
| parent | 7325b224f61243e834a63008de45f96588ce0130 (diff) | |
| parent | 6f4f4c2d592761e3d1f1238da53a5659b9d9c23c (diff) | |
Merge http://gkernel.bkbits.net/net-drivers-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
| -rw-r--r-- | drivers/char/epca.c | 12 | ||||
| -rw-r--r-- | drivers/net/e1000/e1000_main.c | 26 | ||||
| -rw-r--r-- | drivers/net/e1000/e1000_param.c | 2 | ||||
| -rw-r--r-- | drivers/net/fc/iph5526.c | 4 | ||||
| -rw-r--r-- | drivers/net/rcpci45.c | 10 | ||||
| -rw-r--r-- | drivers/net/tokenring/tms380tr.c | 4 | ||||
| -rw-r--r-- | drivers/net/tulip/tulip_core.c | 8 | ||||
| -rw-r--r-- | drivers/net/wan/pc300_tty.c | 1 | ||||
| -rw-r--r-- | drivers/net/wan/sdla_chdlc.c | 1 | ||||
| -rw-r--r-- | include/linux/pci_ids.h | 3 |
10 files changed, 33 insertions, 38 deletions
diff --git a/drivers/char/epca.c b/drivers/char/epca.c index abd96731341c..de7ed6c42539 100644 --- a/drivers/char/epca.c +++ b/drivers/char/epca.c @@ -481,9 +481,7 @@ static inline void pc_sched_event(struct channel *ch, int event) -------------------------------------------------------------------------*/ ch->event |= 1 << event; - MOD_INC_USE_COUNT; - if (schedule_work(&ch->tqueue) == 0) - MOD_DEC_USE_COUNT; + schedule_work(&ch->tqueue); } /* End pc_sched_event */ @@ -604,7 +602,6 @@ static void pc_close(struct tty_struct * tty, struct file * filp) ASYNC_CALLOUT_ACTIVE | ASYNC_CLOSING); wake_up_interruptible(&ch->close_wait); - MOD_DEC_USE_COUNT; restore_flags(flags); @@ -692,10 +689,6 @@ static void pc_hangup(struct tty_struct *tty) shutdown(ch); - if (ch->count) - MOD_DEC_USE_COUNT; - - ch->tty = NULL; ch->event = 0; ch->count = 0; @@ -1389,8 +1382,6 @@ static int pc_open(struct tty_struct *tty, struct file * filp) } - MOD_INC_USE_COUNT; - ch = &digi_channels[line]; boardnum = ch->boardnum; @@ -1714,6 +1705,7 @@ int __init pc_init(void) memset(&pc_info, 0, sizeof(struct tty_driver)); pc_driver.magic = TTY_DRIVER_MAGIC; + pc_driver.owner = THIS_MODULE; pc_driver.name = "ttyD"; pc_driver.major = DIGI_MAJOR; pc_driver.minor_start = 0; diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 10a831f3bbbd..fd5de8f28de4 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c @@ -61,7 +61,7 @@ char e1000_driver_name[] = "e1000"; char e1000_driver_string[] = "Intel(R) PRO/1000 Network Driver"; -char e1000_driver_version[] = "5.0.43-k1"; +char e1000_driver_version[] = "5.0.43-k2"; char e1000_copyright[] = "Copyright (c) 1999-2003 Intel Corporation."; /* e1000_pci_tbl - PCI Device ID Table @@ -2000,10 +2000,16 @@ e1000_intr(int irq, void *data, struct pt_regs *regs) } #ifdef CONFIG_E1000_NAPI - /* Don't disable interrupts - rely on h/w interrupt - * moderation to keep interrupts low. netif_rx_schedule - * is NOP if already polling. */ - netif_rx_schedule(netdev); + if(netif_rx_schedule_prep(netdev)) { + + /* Disable interrupts and register for poll. The flush + of the posted write is intentionally left out. + */ + + atomic_inc(&adapter->irq_sem); + E1000_WRITE_REG(&adapter->hw, IMC, ~0); + __netif_rx_schedule(netdev); + } #else for(i = 0; i < E1000_MAX_INTR; i++) if(!e1000_clean_rx_irq(adapter) && @@ -2025,16 +2031,16 @@ e1000_clean(struct net_device *netdev, int *budget) int work_to_do = min(*budget, netdev->quota); int work_done = 0; - while(work_done < work_to_do) - if(!e1000_clean_rx_irq(adapter, &work_done, work_to_do) && - !e1000_clean_tx_irq(adapter)) - break; + e1000_clean_tx_irq(adapter); + e1000_clean_rx_irq(adapter, &work_done, work_to_do); *budget -= work_done; netdev->quota -= work_done; - if(work_done < work_to_do) + if(work_done < work_to_do) { netif_rx_complete(netdev); + e1000_irq_enable(adapter); + } return (work_done >= work_to_do); } diff --git a/drivers/net/e1000/e1000_param.c b/drivers/net/e1000/e1000_param.c index a3699c22b8c0..b54b046f9e4e 100644 --- a/drivers/net/e1000/e1000_param.c +++ b/drivers/net/e1000/e1000_param.c @@ -322,7 +322,7 @@ e1000_check_options(struct e1000_adapter *adapter) .name = "Transmit Descriptors", .err = "using default of " __MODULE_STRING(DEFAULT_TXD), .def = DEFAULT_TXD, - .arg = { .r { .min = MIN_TXD }} + .arg = { .r = { .min = MIN_TXD }} }; struct e1000_desc_ring *tx_ring = &adapter->tx_ring; e1000_mac_type mac_type = adapter->hw.mac_type; diff --git a/drivers/net/fc/iph5526.c b/drivers/net/fc/iph5526.c index 9e5afc18f1a8..8fc5649de06d 100644 --- a/drivers/net/fc/iph5526.c +++ b/drivers/net/fc/iph5526.c @@ -689,8 +689,8 @@ int index, no_of_entries = 0; prev_IMQ_index = current_IMQ_index; } } /*end of for loop*/ - return; LEAVE("tachyon_interrupt"); + return; } @@ -3375,8 +3375,8 @@ u_int s_id; q = q->next; } DPRINTK1("Port Name does not match. Txing LOGO."); - return 0; LEAVE("validate_login"); + return 0; } static void add_to_address_cache(struct fc_info *fi, u_int *base_ptr) diff --git a/drivers/net/rcpci45.c b/drivers/net/rcpci45.c index ee9b530c10fe..a79d44acb804 100644 --- a/drivers/net/rcpci45.c +++ b/drivers/net/rcpci45.c @@ -76,10 +76,6 @@ static char version[] __initdata = #define NEW_MULTICAST -/* PCI/45 Configuration space values */ -#define RC_PCI45_VENDOR_ID 0x4916 -#define RC_PCI45_DEVICE_ID 0x1960 - #define MAX_ETHER_SIZE 1520 #define MAX_NMBR_RCV_BUFFERS 96 #define RC_POSTED_BUFFERS_LOW_MARK MAX_NMBR_RCV_BUFFERS-16 @@ -117,7 +113,7 @@ static void RCreboot_callback (U32, U32, U32, struct net_device *); static int RC_allocate_and_post_buffers (struct net_device *, int); static struct pci_device_id rcpci45_pci_table[] __devinitdata = { - {RC_PCI45_VENDOR_ID, RC_PCI45_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID,}, + { PCI_VENDOR_ID_REDCREEK, PCI_DEVICE_ID_RC45, PCI_ANY_ID, PCI_ANY_ID,}, {} }; MODULE_DEVICE_TABLE (pci, rcpci45_pci_table); @@ -207,7 +203,7 @@ rcpci45_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) * messages. Thus, we need contiguous physical pages of * memory. */ - pDpa->msgbuf = kmalloc (MSG_BUF_SIZE, GFP_DMA|GFP_ATOMIC|GFP_KERNEL); + pDpa->msgbuf = kmalloc (MSG_BUF_SIZE, GFP_DMA | GFP_KERNEL); if (!pDpa->msgbuf) { printk (KERN_ERR "(rcpci45 driver:) \ Could not allocate %d byte memory for the \ @@ -1000,7 +996,7 @@ RC_allocate_and_post_buffers (struct net_device *dev, int numBuffers) } p = (PU32) kmalloc (sizeof (U32) + numBuffers * sizeof (singleB), - GFP_DMA|GFP_ATOMIC|GFP_KERNEL); + GFP_DMA | GFP_ATOMIC); if (!p) { printk (KERN_WARNING "%s unable to allocate TCB\n", diff --git a/drivers/net/tokenring/tms380tr.c b/drivers/net/tokenring/tms380tr.c index 28c080a06a56..5705c1e11e35 100644 --- a/drivers/net/tokenring/tms380tr.c +++ b/drivers/net/tokenring/tms380tr.c @@ -257,7 +257,7 @@ int tms380tr_open(struct net_device *dev) int err; /* init the spinlock */ - spin_lock_init(tp->lock); + spin_lock_init(&tp->lock); /* Reset the hardware here. Don't forget to set the station address. */ @@ -1458,7 +1458,7 @@ static int tms380tr_init_adapter(struct net_device *dev) if(tms380tr_debug > 3) { printk(KERN_DEBUG "%s: buffer (real): %lx\n", dev->name, (long) &tp->scb); - printk(KERN_DEBUG "%s: buffer (virt): %lx\n", dev->name, (long) ((char *)&tp->scb - (char *)tp) + tp->dmabuffer); + printk(KERN_DEBUG "%s: buffer (virt): %lx\n", dev->name, (long) ((char *)&tp->scb - (char *)tp) + (long) tp->dmabuffer); printk(KERN_DEBUG "%s: buffer (DMA) : %lx\n", dev->name, (long) tp->dmabuffer); printk(KERN_DEBUG "%s: buffer (tp) : %lx\n", dev->name, (long) tp); } diff --git a/drivers/net/tulip/tulip_core.c b/drivers/net/tulip/tulip_core.c index 9ce35ad6a029..288e41016600 100644 --- a/drivers/net/tulip/tulip_core.c +++ b/drivers/net/tulip/tulip_core.c @@ -485,12 +485,9 @@ tulip_open(struct net_device *dev) struct tulip_private *tp = (struct tulip_private *)dev->priv; #endif int retval; - MOD_INC_USE_COUNT; - if ((retval = request_irq(dev->irq, &tulip_interrupt, SA_SHIRQ, dev->name, dev))) { - MOD_DEC_USE_COUNT; + if ((retval = request_irq(dev->irq, &tulip_interrupt, SA_SHIRQ, dev->name, dev))) return retval; - } tulip_init_ring (dev); @@ -823,8 +820,6 @@ static int tulip_close (struct net_device *dev) tp->tx_buffers[i].mapping = 0; } - MOD_DEC_USE_COUNT; - return 0; } @@ -1361,6 +1356,7 @@ static int __devinit tulip_init_one (struct pci_dev *pdev, return -ENOMEM; } + SET_MODULE_OWNER(dev); if (pci_resource_len (pdev, 0) < tulip_tbl[chip_idx].io_size) { printk (KERN_ERR PFX "%s: I/O region (0x%lx@0x%lx) too small, " "aborting\n", pdev->slot_name, diff --git a/drivers/net/wan/pc300_tty.c b/drivers/net/wan/pc300_tty.c index b87202ee7cd0..69565d05d847 100644 --- a/drivers/net/wan/pc300_tty.c +++ b/drivers/net/wan/pc300_tty.c @@ -215,6 +215,7 @@ void cpc_tty_init(pc300dev_t *pc300dev) /* initialize tty driver struct */ memset(&serial_drv,0,sizeof(struct tty_driver)); serial_drv.magic = TTY_DRIVER_MAGIC; + serial_drv.owner = THIS_MODULE; serial_drv.driver_name = "pc300_tty"; serial_drv.name = "ttyCP"; serial_drv.major = CPC_TTY_MAJOR; diff --git a/drivers/net/wan/sdla_chdlc.c b/drivers/net/wan/sdla_chdlc.c index 2392fbd4be1f..897f4573a510 100644 --- a/drivers/net/wan/sdla_chdlc.c +++ b/drivers/net/wan/sdla_chdlc.c @@ -4401,6 +4401,7 @@ int wanpipe_tty_init(sdla_t *card) memset(&serial_driver, 0, sizeof(struct tty_driver)); serial_driver.magic = TTY_DRIVER_MAGIC; + serial_driver.owner = THIS_MODULE; serial_driver.driver_name = "wanpipe_tty"; serial_driver.name = "ttyW"; serial_driver.major = WAN_TTY_MAJOR; diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 099131ef98b2..d001cf50ebfd 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -1753,6 +1753,9 @@ #define PCI_DEVICE_ID_AKS_ALADDINCARD 0x0100 #define PCI_DEVICE_ID_AKS_CPC 0x0200 +#define PCI_VENDOR_ID_REDCREEK 0x4916 +#define PCI_DEVICE_ID_RC45 0x1960 + #define PCI_VENDOR_ID_NETVIN 0x4a14 #define PCI_DEVICE_ID_NETVIN_NV5000SC 0x5000 |
