Commit c5838f46 authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://kernel.bkbits.net/jgarzik/net-drivers-2.5

into home.osdl.org:/home/torvalds/v2.5/linux
parents 74541720 f258f44a
......@@ -2068,13 +2068,14 @@ e100_rx_srv(struct e100_private *bdp)
skb->ip_summed = CHECKSUM_NONE;
}
bdp->drv_stats.net_stats.rx_bytes += skb->len;
if(bdp->vlgrp && (rfd_status & CB_STATUS_VLAN)) {
vlan_hwaccel_rx(skb, bdp->vlgrp, be16_to_cpu(rfd->vlanid));
} else {
netif_rx(skb);
}
dev->last_rx = jiffies;
bdp->drv_stats.net_stats.rx_bytes += skb->len;
rfd_cnt++;
} /* end of rfd loop */
......
......@@ -77,7 +77,6 @@ MODULE_PARM_DESC (rx_copybreak, "de2104x Breakpoint at which Rx packets are copi
#define DE_DEF_MSG_ENABLE (NETIF_MSG_DRV | \
NETIF_MSG_PROBE | \
NETIF_MSG_LINK | \
NETIF_MSG_TIMER | \
NETIF_MSG_IFDOWN | \
NETIF_MSG_IFUP | \
NETIF_MSG_RX_ERR | \
......
......@@ -40,7 +40,7 @@
/* Set the copy breakpoint for the copy-only-tiny-frames scheme.
* Setting to > 1518 effectively disables this feature.
*/
static int rx_copybreak = 0;
static int rx_copybreak = 200;
/* end user-configurable values */
......@@ -85,8 +85,8 @@ static const int multicast_filter_limit = 32;
#define PKT_BUF_SZ 1536
#define DRV_MODULE_NAME "typhoon"
#define DRV_MODULE_VERSION "1.0"
#define DRV_MODULE_RELDATE "03/02/14"
#define DRV_MODULE_VERSION "1.5.1"
#define DRV_MODULE_RELDATE "03/06/26"
#define PFX DRV_MODULE_NAME ": "
#define ERR_PFX KERN_ERR PFX
......@@ -150,7 +150,7 @@ struct typhoon_card_info {
#define TYPHOON_CRYPTO_DES 1
#define TYPHOON_CRYPTO_3DES 2
#define TYPHOON_CRYPTO_VARIABLE 4
#define TYPHOON_FIBER 5
#define TYPHOON_FIBER 8
enum typhoon_cards {
TYPHOON_TX = 0, TYPHOON_TX95, TYPHOON_TX97, TYPHOON_SVR,
......@@ -1798,7 +1798,7 @@ typhoon_interrupt(int irq, void *dev_instance, struct pt_regs *rgs)
u32 intr_status;
intr_status = readl(ioaddr + TYPHOON_REG_INTR_STATUS);
if(!intr_status)
if(!(intr_status & TYPHOON_INTR_HOST_INT))
return IRQ_NONE;
writel(intr_status, ioaddr + TYPHOON_REG_INTR_STATUS);
......
......@@ -2901,6 +2901,7 @@ static int setup_proc_entry( struct net_device *dev,
airo_entry);
apriv->proc_entry->uid = proc_uid;
apriv->proc_entry->gid = proc_gid;
apriv->proc_entry->owner = THIS_MODULE;
/* Setup the StatsDelta */
entry = create_proc_entry("StatsDelta",
......@@ -2909,6 +2910,7 @@ static int setup_proc_entry( struct net_device *dev,
entry->uid = proc_uid;
entry->gid = proc_gid;
entry->data = dev;
entry->owner = THIS_MODULE;
SETPROC_OPS(entry, proc_statsdelta_ops);
/* Setup the Stats */
......@@ -2918,6 +2920,7 @@ static int setup_proc_entry( struct net_device *dev,
entry->uid = proc_uid;
entry->gid = proc_gid;
entry->data = dev;
entry->owner = THIS_MODULE;
SETPROC_OPS(entry, proc_stats_ops);
/* Setup the Status */
......@@ -2927,6 +2930,7 @@ static int setup_proc_entry( struct net_device *dev,
entry->uid = proc_uid;
entry->gid = proc_gid;
entry->data = dev;
entry->owner = THIS_MODULE;
SETPROC_OPS(entry, proc_status_ops);
/* Setup the Config */
......@@ -2936,6 +2940,7 @@ static int setup_proc_entry( struct net_device *dev,
entry->uid = proc_uid;
entry->gid = proc_gid;
entry->data = dev;
entry->owner = THIS_MODULE;
SETPROC_OPS(entry, proc_config_ops);
/* Setup the SSID */
......@@ -2945,6 +2950,7 @@ static int setup_proc_entry( struct net_device *dev,
entry->uid = proc_uid;
entry->gid = proc_gid;
entry->data = dev;
entry->owner = THIS_MODULE;
SETPROC_OPS(entry, proc_SSID_ops);
/* Setup the APList */
......@@ -2954,6 +2960,7 @@ static int setup_proc_entry( struct net_device *dev,
entry->uid = proc_uid;
entry->gid = proc_gid;
entry->data = dev;
entry->owner = THIS_MODULE;
SETPROC_OPS(entry, proc_APList_ops);
/* Setup the BSSList */
......@@ -2963,6 +2970,7 @@ static int setup_proc_entry( struct net_device *dev,
entry->uid = proc_uid;
entry->gid = proc_gid;
entry->data = dev;
entry->owner = THIS_MODULE;
SETPROC_OPS(entry, proc_BSSList_ops);
/* Setup the WepKey */
......@@ -2972,6 +2980,7 @@ static int setup_proc_entry( struct net_device *dev,
entry->uid = proc_uid;
entry->gid = proc_gid;
entry->data = dev;
entry->owner = THIS_MODULE;
SETPROC_OPS(entry, proc_wepkey_ops);
return 0;
......@@ -3062,8 +3071,6 @@ static int proc_status_open( struct inode *inode, struct file *file ) {
StatusRid status_rid;
int i;
MOD_INC_USE_COUNT;
if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL)
return -ENOMEM;
memset(file->private_data, 0, sizeof(struct proc_data));
......@@ -3143,8 +3150,6 @@ static int proc_stats_rid_open( struct inode *inode,
StatsRid stats;
int i, j;
int *vals = stats.vals;
MOD_INC_USE_COUNT;
if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL)
return -ENOMEM;
......@@ -3421,8 +3426,6 @@ static int proc_config_open( struct inode *inode, struct file *file ) {
struct airo_info *ai = dev->priv;
int i;
MOD_INC_USE_COUNT;
if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL)
return -ENOMEM;
memset(file->private_data, 0, sizeof(struct proc_data));
......@@ -3692,8 +3695,6 @@ static int proc_wepkey_open( struct inode *inode, struct file *file ) {
int j=0;
int rc;
MOD_INC_USE_COUNT;
if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL)
return -ENOMEM;
memset(file->private_data, 0, sizeof(struct proc_data));
......@@ -3742,8 +3743,6 @@ static int proc_SSID_open( struct inode *inode, struct file *file ) {
char *ptr;
SsidRid SSID_rid;
MOD_INC_USE_COUNT;
if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL)
return -ENOMEM;
memset(file->private_data, 0, sizeof(struct proc_data));
......@@ -3788,8 +3787,6 @@ static int proc_APList_open( struct inode *inode, struct file *file ) {
char *ptr;
APListRid APList_rid;
MOD_INC_USE_COUNT;
if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL)
return -ENOMEM;
memset(file->private_data, 0, sizeof(struct proc_data));
......@@ -3840,8 +3837,6 @@ static int proc_BSSList_open( struct inode *inode, struct file *file ) {
/* If doLoseSync is not 1, we won't do a Lose Sync */
int doLoseSync = -1;
MOD_INC_USE_COUNT;
if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL)
return -ENOMEM;
memset(file->private_data, 0, sizeof(struct proc_data));
......@@ -3904,7 +3899,6 @@ static int proc_close( struct inode *inode, struct file *file )
{
struct proc_data *data = (struct proc_data *)file->private_data;
if ( data->on_close != NULL ) data->on_close( inode, file );
MOD_DEC_USE_COUNT;
if ( data->rbuffer ) kfree( data->rbuffer );
if ( data->wbuffer ) kfree( data->wbuffer );
kfree( data );
......
......@@ -321,7 +321,6 @@ struct site_survey {
typedef struct netwave_private {
dev_link_t link;
struct net_device dev;
spinlock_t spinlock; /* Serialize access to the hardware (SMP) */
dev_node_t node;
u_char *ramBase;
......@@ -449,11 +448,13 @@ static dev_link_t *netwave_attach(void)
netwave_flush_stale_links();
/* Initialize the dev_link_t structure */
priv = kmalloc(sizeof(*priv), GFP_KERNEL);
if (!priv) return NULL;
memset(priv, 0, sizeof(*priv));
link = &priv->link; dev = &priv->dev;
link->priv = dev->priv = priv;
dev = alloc_etherdev(sizeof(netwave_private));
if (!dev)
return NULL;
priv = dev->priv;
link = &priv->link;
link->priv = dev;
init_timer(&link->release);
link->release.function = &netwave_release;
link->release.data = (u_long)link;
......@@ -504,7 +505,6 @@ static dev_link_t *netwave_attach(void)
dev->tx_timeout = &netwave_watchdog;
dev->watchdog_timeo = TX_TIMEOUT;
ether_setup(dev);
dev->open = &netwave_open;
dev->stop = &netwave_close;
link->irq.Instance = dev;
......@@ -541,7 +541,7 @@ static dev_link_t *netwave_attach(void)
*/
static void netwave_detach(dev_link_t *link)
{
netwave_private *priv = link->priv;
struct net_device *dev = link->priv;
dev_link_t **linkp;
DEBUG(0, "netwave_detach(0x%p)\n", link);
......@@ -580,8 +580,8 @@ static void netwave_detach(dev_link_t *link)
/* Unlink device structure, free pieces */
*linkp = link->next;
if (link->dev)
unregister_netdev(&priv->dev);
kfree(priv);
unregister_netdev(dev);
kfree(dev);
} /* netwave_detach */
......@@ -1038,8 +1038,8 @@ while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed
static void netwave_pcmcia_config(dev_link_t *link) {
client_handle_t handle = link->handle;
netwave_private *priv = link->priv;
struct net_device *dev = &priv->dev;
struct net_device *dev = link->priv;
netwave_private *priv = dev->priv;
tuple_t tuple;
cisparse_t parse;
int i, j, last_ret, last_fn;
......@@ -1099,7 +1099,7 @@ static void netwave_pcmcia_config(dev_link_t *link) {
* Allocate a 32K memory window. Note that the dev_link_t
* structure provides space for one window handle -- if your
* device needs several windows, you'll need to keep track of
* the handles in your private data structure, link->priv.
* the handles in your private data structure, dev->priv.
*/
DEBUG(1, "Setting mem speed of %d\n", mem_speed);
......@@ -1161,7 +1161,8 @@ static void netwave_pcmcia_config(dev_link_t *link) {
*/
static void netwave_release(u_long arg) {
dev_link_t *link = (dev_link_t *)arg;
netwave_private *priv = link->priv;
struct net_device *dev = link->priv;
netwave_private *priv = dev->priv;
DEBUG(0, "netwave_release(0x%p)\n", link);
......@@ -1206,8 +1207,7 @@ static void netwave_release(u_long arg) {
static int netwave_event(event_t event, int priority,
event_callback_args_t *args) {
dev_link_t *link = args->client_data;
netwave_private *priv = link->priv;
struct net_device *dev = &priv->dev;
struct net_device *dev = link->priv;
DEBUG(1, "netwave_event(0x%06x)\n", event);
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment