Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
1697b806
Commit
1697b806
authored
May 26, 2003
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/jgarzik/net-drivers-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
2cd16b83
f755fa58
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
129 additions
and
213 deletions
+129
-213
drivers/net/bonding/bond_3ad.c
drivers/net/bonding/bond_3ad.c
+56
-39
drivers/net/bonding/bond_main.c
drivers/net/bonding/bond_main.c
+11
-1
drivers/net/eepro.c
drivers/net/eepro.c
+1
-1
drivers/net/sundance.c
drivers/net/sundance.c
+20
-7
drivers/net/wan/lmc/lmc_debug.c
drivers/net/wan/lmc/lmc_debug.c
+0
-2
drivers/net/wan/lmc/lmc_main.c
drivers/net/wan/lmc/lmc_main.c
+41
-133
drivers/net/wan/lmc/lmc_media.c
drivers/net/wan/lmc/lmc_media.c
+0
-7
drivers/net/wan/lmc/lmc_proto.c
drivers/net/wan/lmc/lmc_proto.c
+0
-14
drivers/net/wan/lmc/lmc_var.h
drivers/net/wan/lmc/lmc_var.h
+0
-9
No files found.
drivers/net/bonding/bond_3ad.c
View file @
1697b806
...
@@ -721,7 +721,7 @@ static void __attach_bond_to_agg(struct port *port)
...
@@ -721,7 +721,7 @@ static void __attach_bond_to_agg(struct port *port)
}
}
/**
/**
* __detach_bond_
to
_agg
* __detach_bond_
from
_agg
* @port: the port we're looking at
* @port: the port we're looking at
*
*
* Handle the detaching of the port's control parser/multiplexer from the
* Handle the detaching of the port's control parser/multiplexer from the
...
@@ -828,6 +828,55 @@ static struct aggregator *__get_active_agg(struct aggregator *aggregator)
...
@@ -828,6 +828,55 @@ static struct aggregator *__get_active_agg(struct aggregator *aggregator)
return
retval
;
return
retval
;
}
}
/**
* __update_lacpdu_from_port - update a port's lacpdu fields
* @port: the port we're looking at
*
*/
static
inline
void
__update_lacpdu_from_port
(
struct
port
*
port
)
{
struct
lacpdu
*
lacpdu
=
&
port
->
lacpdu
;
/* update current actual Actor parameters */
/* lacpdu->subtype initialized
* lacpdu->version_number initialized
* lacpdu->tlv_type_actor_info initialized
* lacpdu->actor_information_length initialized
*/
lacpdu
->
actor_system_priority
=
port
->
actor_system_priority
;
lacpdu
->
actor_system
=
port
->
actor_system
;
lacpdu
->
actor_key
=
port
->
actor_oper_port_key
;
lacpdu
->
actor_port_priority
=
port
->
actor_port_priority
;
lacpdu
->
actor_port
=
port
->
actor_port_number
;
lacpdu
->
actor_state
=
port
->
actor_oper_port_state
;
/* lacpdu->reserved_3_1 initialized
* lacpdu->tlv_type_partner_info initialized
* lacpdu->partner_information_length initialized
*/
lacpdu
->
partner_system_priority
=
port
->
partner_oper_system_priority
;
lacpdu
->
partner_system
=
port
->
partner_oper_system
;
lacpdu
->
partner_key
=
port
->
partner_oper_key
;
lacpdu
->
partner_port_priority
=
port
->
partner_oper_port_priority
;
lacpdu
->
partner_port
=
port
->
partner_oper_port_number
;
lacpdu
->
partner_state
=
port
->
partner_oper_port_state
;
/* lacpdu->reserved_3_2 initialized
* lacpdu->tlv_type_collector_info initialized
* lacpdu->collector_information_length initialized
* collector_max_delay initialized
* reserved_12[12] initialized
* tlv_type_terminator initialized
* terminator_length initialized
* reserved_50[50] initialized
*/
/* Convert all non u8 parameters to Big Endian for transmit */
__ntohs_lacpdu
(
lacpdu
);
}
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
// ================= main 802.3ad protocol code ======================================
// ================= main 802.3ad protocol code ======================================
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
...
@@ -1177,43 +1226,11 @@ static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port)
...
@@ -1177,43 +1226,11 @@ static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port)
*/
*/
static
void
ad_tx_machine
(
struct
port
*
port
)
static
void
ad_tx_machine
(
struct
port
*
port
)
{
{
struct
lacpdu
*
lacpdu
=
&
port
->
lacpdu
;
// check if tx timer expired, to verify that we do not send more than 3 packets per second
// check if tx timer expired, to verify that we do not send more than 3 packets per second
if
(
port
->
sm_tx_timer_counter
&&
!
(
--
port
->
sm_tx_timer_counter
))
{
if
(
port
->
sm_tx_timer_counter
&&
!
(
--
port
->
sm_tx_timer_counter
))
{
// check if there is something to send
// check if there is something to send
if
(
port
->
ntt
&&
(
port
->
sm_vars
&
AD_PORT_LACP_ENABLED
))
{
if
(
port
->
ntt
&&
(
port
->
sm_vars
&
AD_PORT_LACP_ENABLED
))
{
//update current actual Actor parameters
__update_lacpdu_from_port
(
port
);
//lacpdu->subtype initialized
//lacpdu->version_number initialized
//lacpdu->tlv_type_actor_info initialized
//lacpdu->actor_information_length initialized
lacpdu
->
actor_system_priority
=
port
->
actor_system_priority
;
lacpdu
->
actor_system
=
port
->
actor_system
;
lacpdu
->
actor_key
=
port
->
actor_oper_port_key
;
lacpdu
->
actor_port_priority
=
port
->
actor_port_priority
;
lacpdu
->
actor_port
=
port
->
actor_port_number
;
lacpdu
->
actor_state
=
port
->
actor_oper_port_state
;
//lacpdu->reserved_3_1 initialized
//lacpdu->tlv_type_partner_info initialized
//lacpdu->partner_information_length initialized
lacpdu
->
partner_system_priority
=
port
->
partner_oper_system_priority
;
lacpdu
->
partner_system
=
port
->
partner_oper_system
;
lacpdu
->
partner_key
=
port
->
partner_oper_key
;
lacpdu
->
partner_port_priority
=
port
->
partner_oper_port_priority
;
lacpdu
->
partner_port
=
port
->
partner_oper_port_number
;
lacpdu
->
partner_state
=
port
->
partner_oper_port_state
;
//lacpdu->reserved_3_2 initialized
//lacpdu->tlv_type_collector_info initialized
//lacpdu->collector_information_length initialized
//collector_max_delay initialized
//reserved_12[12] initialized
//tlv_type_terminator initialized
//terminator_length initialized
//reserved_50[50] initialized
// We need to convert all non u8 parameters to Big Endian for transmit
__ntohs_lacpdu
(
lacpdu
);
// send the lacpdu
// send the lacpdu
if
(
ad_lacpdu_send
(
port
)
>=
0
)
{
if
(
ad_lacpdu_send
(
port
)
>=
0
)
{
BOND_PRINT_DBG
((
"Sent LACPDU on port %d"
,
port
->
actor_port_number
));
BOND_PRINT_DBG
((
"Sent LACPDU on port %d"
,
port
->
actor_port_number
));
...
@@ -1971,13 +1988,13 @@ void bond_3ad_unbind_slave(struct slave *slave)
...
@@ -1971,13 +1988,13 @@ void bond_3ad_unbind_slave(struct slave *slave)
return
;
return
;
}
}
// disable the port
BOND_PRINT_DBG
((
"Unbinding Link Aggregation Group %d"
,
aggregator
->
aggregator_identifier
));
ad_disable_collecting_distributing
(
port
);
// deinitialize port's locks if necessary(os-specific)
/* Tell the partner that this port is not suitable for aggregation */
__deinitialize_port_locks
(
port
);
port
->
actor_oper_port_state
&=
~
AD_STATE_AGGREGATION
;
__update_lacpdu_from_port
(
port
);
ad_lacpdu_send
(
port
);
BOND_PRINT_DBG
((
"Unbinding Link Aggregation Group %d"
,
aggregator
->
aggregator_identifier
));
// check if this aggregator is occupied
// check if this aggregator is occupied
if
(
aggregator
->
lag_ports
)
{
if
(
aggregator
->
lag_ports
)
{
// check if there are other ports related to this aggregator except
// check if there are other ports related to this aggregator except
...
...
drivers/net/bonding/bond_main.c
View file @
1697b806
...
@@ -2220,7 +2220,7 @@ static void bond_mii_monitor(struct net_device *master)
...
@@ -2220,7 +2220,7 @@ static void bond_mii_monitor(struct net_device *master)
}
}
printk
(
KERN_INFO
printk
(
KERN_INFO
"%s: link status definitely down "
"%s: link status definitely down "
"for interface %s, disabling it
\n
"
,
"for interface %s, disabling it"
,
master
->
name
,
master
->
name
,
dev
->
name
);
dev
->
name
);
...
@@ -2994,6 +2994,7 @@ static int bond_ioctl(struct net_device *master_dev, struct ifreq *ifr, int cmd)
...
@@ -2994,6 +2994,7 @@ static int bond_ioctl(struct net_device *master_dev, struct ifreq *ifr, int cmd)
struct
ifbond
*
u_binfo
=
NULL
,
k_binfo
;
struct
ifbond
*
u_binfo
=
NULL
,
k_binfo
;
struct
ifslave
*
u_sinfo
=
NULL
,
k_sinfo
;
struct
ifslave
*
u_sinfo
=
NULL
,
k_sinfo
;
struct
mii_ioctl_data
*
mii
=
NULL
;
struct
mii_ioctl_data
*
mii
=
NULL
;
int
prev_abi_ver
=
orig_app_abi_ver
;
int
ret
=
0
;
int
ret
=
0
;
#ifdef BONDING_DEBUG
#ifdef BONDING_DEBUG
...
@@ -3112,6 +3113,15 @@ static int bond_ioctl(struct net_device *master_dev, struct ifreq *ifr, int cmd)
...
@@ -3112,6 +3113,15 @@ static int bond_ioctl(struct net_device *master_dev, struct ifreq *ifr, int cmd)
}
}
dev_put
(
slave_dev
);
dev_put
(
slave_dev
);
}
}
if
(
ret
<
0
)
{
/* The ioctl failed, so there's no point in changing the
* orig_app_abi_ver. We'll restore it's value just in case
* we've changed it earlier in this function.
*/
orig_app_abi_ver
=
prev_abi_ver
;
}
return
ret
;
return
ret
;
}
}
...
...
drivers/net/eepro.c
View file @
1697b806
...
@@ -1715,7 +1715,7 @@ static int autodetect;
...
@@ -1715,7 +1715,7 @@ static int autodetect;
static
int
n_eepro
;
static
int
n_eepro
;
/* For linux 2.1.xx */
/* For linux 2.1.xx */
MODULE_AUTHOR
(
"Pascal Dupuis
<dupuis@lei.ucl.ac.be> for the 2.1 stuff (locking,...)
"
);
MODULE_AUTHOR
(
"Pascal Dupuis
, and aris@cathedrallabs.org
"
);
MODULE_DESCRIPTION
(
"Intel i82595 ISA EtherExpressPro10/10+ driver"
);
MODULE_DESCRIPTION
(
"Intel i82595 ISA EtherExpressPro10/10+ driver"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_LICENSE
(
"GPL"
);
...
...
drivers/net/sundance.c
View file @
1697b806
...
@@ -84,11 +84,14 @@
...
@@ -84,11 +84,14 @@
- Fix bug of custom mac address
- Fix bug of custom mac address
(StationAddr register only accept word write)
(StationAddr register only accept word write)
Version LK1.09 (D-Link):
- Fix the flowctrl bug.
- Set Pause bit in MII ANAR if flow control enabled.
*/
*/
#define DRV_NAME "sundance"
#define DRV_NAME "sundance"
#define DRV_VERSION "1.01+LK1.0
8
a"
#define DRV_VERSION "1.01+LK1.0
9
a"
#define DRV_RELDATE "
23-Apr
-2003"
#define DRV_RELDATE "
16-May
-2003"
/* The user-configurable values.
/* The user-configurable values.
...
@@ -671,8 +674,8 @@ static int __devinit sundance_probe1 (struct pci_dev *pdev,
...
@@ -671,8 +674,8 @@ static int __devinit sundance_probe1 (struct pci_dev *pdev,
np
->
an_enable
=
1
;
np
->
an_enable
=
1
;
}
}
}
}
if
(
flowctrl
==
0
)
if
(
flowctrl
==
1
)
np
->
flowctrl
=
0
;
np
->
flowctrl
=
1
;
}
}
/* Fibre PHY? */
/* Fibre PHY? */
...
@@ -687,6 +690,9 @@ static int __devinit sundance_probe1 (struct pci_dev *pdev,
...
@@ -687,6 +690,9 @@ static int __devinit sundance_probe1 (struct pci_dev *pdev,
/* Reset PHY */
/* Reset PHY */
mdio_write
(
dev
,
np
->
phys
[
0
],
MII_BMCR
,
BMCR_RESET
);
mdio_write
(
dev
,
np
->
phys
[
0
],
MII_BMCR
,
BMCR_RESET
);
mdelay
(
300
);
mdelay
(
300
);
/* If flow control enabled, we need to advertise it.*/
if
(
np
->
flowctrl
)
mdio_write
(
dev
,
np
->
phys
[
0
],
MII_ADVERTISE
,
np
->
mii_if
.
advertising
|
0x0400
);
mdio_write
(
dev
,
np
->
phys
[
0
],
MII_BMCR
,
BMCR_ANENABLE
|
BMCR_ANRESTART
);
mdio_write
(
dev
,
np
->
phys
[
0
],
MII_BMCR
,
BMCR_ANENABLE
|
BMCR_ANRESTART
);
/* Force media type */
/* Force media type */
if
(
!
np
->
an_enable
)
{
if
(
!
np
->
an_enable
)
{
...
@@ -935,7 +941,7 @@ static void check_duplex(struct net_device *dev)
...
@@ -935,7 +941,7 @@ static void check_duplex(struct net_device *dev)
printk
(
KERN_INFO
"%s: Setting %s-duplex based on MII #%d "
printk
(
KERN_INFO
"%s: Setting %s-duplex based on MII #%d "
"negotiated capability %4.4x.
\n
"
,
dev
->
name
,
"negotiated capability %4.4x.
\n
"
,
dev
->
name
,
duplex
?
"full"
:
"half"
,
np
->
phys
[
0
],
negotiated
);
duplex
?
"full"
:
"half"
,
np
->
phys
[
0
],
negotiated
);
writew
(
duplex
?
0x20
:
0
,
ioaddr
+
MACCtrl0
);
writew
(
readw
(
ioaddr
+
MACCtrl0
)
|
duplex
?
0x20
:
0
,
ioaddr
+
MACCtrl0
);
}
}
}
}
...
@@ -1455,10 +1461,13 @@ static void netdev_error(struct net_device *dev, int intr_status)
...
@@ -1455,10 +1461,13 @@ static void netdev_error(struct net_device *dev, int intr_status)
"full"
:
"half"
);
"full"
:
"half"
);
}
}
check_duplex
(
dev
);
check_duplex
(
dev
);
if
(
np
->
flowctrl
==
0
)
if
(
np
->
flowctrl
&&
np
->
mii_if
.
full_duplex
)
{
writew
(
readw
(
ioaddr
+
MACCtrl0
)
&
~
EnbFlowCtrl
,
writew
(
readw
(
ioaddr
+
MulticastFilter1
+
2
)
|
0x0200
,
ioaddr
+
MulticastFilter1
+
2
);
writew
(
readw
(
ioaddr
+
MACCtrl0
)
|
EnbFlowCtrl
,
ioaddr
+
MACCtrl0
);
ioaddr
+
MACCtrl0
);
}
}
}
if
(
intr_status
&
StatsMax
)
{
if
(
intr_status
&
StatsMax
)
{
get_stats
(
dev
);
get_stats
(
dev
);
}
}
...
@@ -1500,6 +1509,7 @@ static struct net_device_stats *get_stats(struct net_device *dev)
...
@@ -1500,6 +1509,7 @@ static struct net_device_stats *get_stats(struct net_device *dev)
static
void
set_rx_mode
(
struct
net_device
*
dev
)
static
void
set_rx_mode
(
struct
net_device
*
dev
)
{
{
long
ioaddr
=
dev
->
base_addr
;
long
ioaddr
=
dev
->
base_addr
;
struct
netdev_private
*
np
=
dev
->
priv
;
u16
mc_filter
[
4
];
/* Multicast hash filter */
u16
mc_filter
[
4
];
/* Multicast hash filter */
u32
rx_mode
;
u32
rx_mode
;
int
i
;
int
i
;
...
@@ -1532,6 +1542,9 @@ static void set_rx_mode(struct net_device *dev)
...
@@ -1532,6 +1542,9 @@ static void set_rx_mode(struct net_device *dev)
writeb
(
AcceptBroadcast
|
AcceptMyPhys
,
ioaddr
+
RxMode
);
writeb
(
AcceptBroadcast
|
AcceptMyPhys
,
ioaddr
+
RxMode
);
return
;
return
;
}
}
if
(
np
->
mii_if
.
full_duplex
&&
np
->
flowctrl
)
mc_filter
[
3
]
|=
0x0200
;
for
(
i
=
0
;
i
<
4
;
i
++
)
for
(
i
=
0
;
i
<
4
;
i
++
)
writew
(
mc_filter
[
i
],
ioaddr
+
MulticastFilter0
+
i
*
2
);
writew
(
mc_filter
[
i
],
ioaddr
+
MulticastFilter0
+
i
*
2
);
writeb
(
rx_mode
,
ioaddr
+
RxMode
);
writeb
(
rx_mode
,
ioaddr
+
RxMode
);
...
...
drivers/net/wan/lmc/lmc_debug.c
View file @
1697b806
...
@@ -2,9 +2,7 @@
...
@@ -2,9 +2,7 @@
#include <linux/types.h>
#include <linux/types.h>
#include <linux/netdevice.h>
#include <linux/netdevice.h>
#include <linux/interrupt.h>
#include <linux/interrupt.h>
#include <linux/version.h>
#include "lmc_ver.h"
#include "lmc_debug.h"
#include "lmc_debug.h"
/*
/*
...
...
drivers/net/wan/lmc/lmc_main.c
View file @
1697b806
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
* With Help By:
* With Help By:
* David Boggs
* David Boggs
* Ron Crane
* Ron Crane
* Al
l
an Cox
* Alan Cox
*
*
* This software may be used and distributed according to the terms
* This software may be used and distributed according to the terms
* of the GNU General Public License version 2, incorporated herein by reference.
* of the GNU General Public License version 2, incorporated herein by reference.
...
@@ -38,7 +38,6 @@
...
@@ -38,7 +38,6 @@
/* $Id: lmc_main.c,v 1.36 2000/04/11 05:25:25 asj Exp $ */
/* $Id: lmc_main.c,v 1.36 2000/04/11 05:25:25 asj Exp $ */
#include <linux/version.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/string.h>
#include <linux/string.h>
...
@@ -51,9 +50,6 @@
...
@@ -51,9 +50,6 @@
#include <linux/pci.h>
#include <linux/pci.h>
#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/init.h>
#if LINUX_VERSION_CODE < 0x20155
#include <linux/bios32.h>
#endif
#include <linux/in.h>
#include <linux/in.h>
#include <linux/if_arp.h>
#include <linux/if_arp.h>
#include <linux/netdevice.h>
#include <linux/netdevice.h>
...
@@ -67,12 +63,8 @@
...
@@ -67,12 +63,8 @@
#include <asm/bitops.h>
#include <asm/bitops.h>
#include <asm/io.h>
#include <asm/io.h>
#include <asm/dma.h>
#include <asm/dma.h>
#if LINUX_VERSION_CODE >= 0x20200
#include <asm/uaccess.h>
#include <asm/uaccess.h>
//#include <asm/spinlock.h>
//#include <asm/spinlock.h>
#else
/* 2.0 kernel */
#define ARPHRD_HDLC 513
#endif
#define DRIVER_MAJOR_VERSION 1
#define DRIVER_MAJOR_VERSION 1
#define DRIVER_MINOR_VERSION 34
#define DRIVER_MINOR_VERSION 34
...
@@ -80,7 +72,6 @@
...
@@ -80,7 +72,6 @@
#define DRIVER_VERSION ((DRIVER_MAJOR_VERSION << 8) + DRIVER_MINOR_VERSION)
#define DRIVER_VERSION ((DRIVER_MAJOR_VERSION << 8) + DRIVER_MINOR_VERSION)
#include "lmc_ver.h"
#include "lmc.h"
#include "lmc.h"
#include "lmc_var.h"
#include "lmc_var.h"
#include "lmc_ioctl.h"
#include "lmc_ioctl.h"
...
@@ -127,10 +118,8 @@ static void lmc_watchdog(unsigned long data);
...
@@ -127,10 +118,8 @@ static void lmc_watchdog(unsigned long data);
static
int
lmc_init
(
struct
net_device
*
const
);
static
int
lmc_init
(
struct
net_device
*
const
);
static
void
lmc_reset
(
lmc_softc_t
*
const
sc
);
static
void
lmc_reset
(
lmc_softc_t
*
const
sc
);
static
void
lmc_dec_reset
(
lmc_softc_t
*
const
sc
);
static
void
lmc_dec_reset
(
lmc_softc_t
*
const
sc
);
#if LINUX_VERSION_CODE >= 0x20363
static
void
lmc_driver_timeout
(
struct
net_device
*
dev
);
static
void
lmc_driver_timeout
(
struct
net_device
*
dev
);
int
lmc_setup
(
void
);
int
lmc_setup
(
void
);
#endif
/*
/*
...
@@ -165,7 +154,8 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
...
@@ -165,7 +154,8 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
* To date internally, just copy this out to the user.
* To date internally, just copy this out to the user.
*/
*/
case
LMCIOCGINFO
:
/*fold01*/
case
LMCIOCGINFO
:
/*fold01*/
LMC_COPY_TO_USER
(
ifr
->
ifr_data
,
&
sc
->
ictl
,
sizeof
(
lmc_ctl_t
));
if
(
copy_to_user
(
ifr
->
ifr_data
,
&
sc
->
ictl
,
sizeof
(
lmc_ctl_t
)))
return
-
EFAULT
;
ret
=
0
;
ret
=
0
;
break
;
break
;
...
@@ -181,7 +171,8 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
...
@@ -181,7 +171,8 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
break
;
break
;
}
}
LMC_COPY_FROM_USER
(
&
ctl
,
ifr
->
ifr_data
,
sizeof
(
lmc_ctl_t
));
if
(
copy_from_user
(
&
ctl
,
ifr
->
ifr_data
,
sizeof
(
lmc_ctl_t
)))
return
-
EFAULT
;
sc
->
lmc_media
->
set_status
(
sc
,
&
ctl
);
sc
->
lmc_media
->
set_status
(
sc
,
&
ctl
);
...
@@ -211,7 +202,8 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
...
@@ -211,7 +202,8 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
break
;
break
;
}
}
LMC_COPY_FROM_USER
(
&
new_type
,
ifr
->
ifr_data
,
sizeof
(
u_int16_t
));
if
(
copy_from_user
(
&
new_type
,
ifr
->
ifr_data
,
sizeof
(
u_int16_t
)))
return
-
EFAULT
;
if
(
new_type
==
old_type
)
if
(
new_type
==
old_type
)
...
@@ -248,8 +240,9 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
...
@@ -248,8 +240,9 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
sc
->
lmc_xinfo
.
Magic1
=
0xDEADBEEF
;
sc
->
lmc_xinfo
.
Magic1
=
0xDEADBEEF
;
LMC_COPY_TO_USER
(
ifr
->
ifr_data
,
&
sc
->
lmc_xinfo
,
if
(
copy_to_user
(
ifr
->
ifr_data
,
&
sc
->
lmc_xinfo
,
sizeof
(
struct
lmc_xinfo
));
sizeof
(
struct
lmc_xinfo
)))
return
-
EFAULT
;
ret
=
0
;
ret
=
0
;
break
;
break
;
...
@@ -279,8 +272,9 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
...
@@ -279,8 +272,9 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
regVal
&
T1FRAMER_SEF_MASK
;
regVal
&
T1FRAMER_SEF_MASK
;
}
}
LMC_COPY_TO_USER
(
ifr
->
ifr_data
,
&
sc
->
stats
,
if
(
copy_to_user
(
ifr
->
ifr_data
,
&
sc
->
stats
,
sizeof
(
struct
lmc_statistics
));
sizeof
(
struct
lmc_statistics
)))
return
-
EFAULT
;
ret
=
0
;
ret
=
0
;
break
;
break
;
...
@@ -310,7 +304,8 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
...
@@ -310,7 +304,8 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
break
;
break
;
}
}
LMC_COPY_FROM_USER
(
&
ctl
,
ifr
->
ifr_data
,
sizeof
(
lmc_ctl_t
));
if
(
copy_from_user
(
&
ctl
,
ifr
->
ifr_data
,
sizeof
(
lmc_ctl_t
)))
return
-
EFAULT
;
sc
->
lmc_media
->
set_circuit_type
(
sc
,
ctl
.
circuit_type
);
sc
->
lmc_media
->
set_circuit_type
(
sc
,
ctl
.
circuit_type
);
sc
->
ictl
.
circuit_type
=
ctl
.
circuit_type
;
sc
->
ictl
.
circuit_type
=
ctl
.
circuit_type
;
ret
=
0
;
ret
=
0
;
...
@@ -335,8 +330,10 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
...
@@ -335,8 +330,10 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
#ifdef DEBUG
#ifdef DEBUG
case
LMCIOCDUMPEVENTLOG
:
case
LMCIOCDUMPEVENTLOG
:
LMC_COPY_TO_USER
(
ifr
->
ifr_data
,
&
lmcEventLogIndex
,
sizeof
(
u32
));
if
(
copy_to_user
(
ifr
->
ifr_data
,
&
lmcEventLogIndex
,
sizeof
(
u32
)))
LMC_COPY_TO_USER
(
ifr
->
ifr_data
+
sizeof
(
u32
),
lmcEventLogBuf
,
sizeof
(
lmcEventLogBuf
));
return
-
EFAULT
;
if
(
copy_to_user
(
ifr
->
ifr_data
+
sizeof
(
u32
),
lmcEventLogBuf
,
sizeof
(
lmcEventLogBuf
)))
return
-
EFAULT
;
ret
=
0
;
ret
=
0
;
break
;
break
;
...
@@ -359,9 +356,10 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
...
@@ -359,9 +356,10 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
/*
/*
* Stop the xwitter whlie we restart the hardware
* Stop the xwitter whlie we restart the hardware
*/
*/
LMC_XMITTER_BUSY
(
dev
);
netif_stop_queue
(
dev
);
LMC_COPY_FROM_USER
(
&
xc
,
ifr
->
ifr_data
,
sizeof
(
struct
lmc_xilinx_control
));
if
(
copy_from_user
(
&
xc
,
ifr
->
ifr_data
,
sizeof
(
struct
lmc_xilinx_control
)))
return
-
EFAULT
;
switch
(
xc
.
command
){
switch
(
xc
.
command
){
case
lmc_xilinx_reset
:
/*fold02*/
case
lmc_xilinx_reset
:
/*fold02*/
{
{
...
@@ -620,7 +618,7 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
...
@@ -620,7 +618,7 @@ int lmc_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
break
;
break
;
}
}
LMC_XMITTER_FREE
(
dev
);
netif_wake_queue
(
dev
);
sc
->
lmc_txfull
=
0
;
sc
->
lmc_txfull
=
0
;
}
}
...
@@ -646,7 +644,7 @@ static void lmc_watchdog (unsigned long data) /*fold00*/
...
@@ -646,7 +644,7 @@ static void lmc_watchdog (unsigned long data) /*fold00*/
lmc_softc_t
*
sc
;
lmc_softc_t
*
sc
;
int
link_status
;
int
link_status
;
u_int32_t
ticks
;
u_int32_t
ticks
;
LMC_SPIN_FLAGS
;
unsigned
long
flags
;
sc
=
dev
->
priv
;
sc
=
dev
->
priv
;
...
@@ -836,11 +834,7 @@ static struct net_device *lmc_probe1 (struct net_device *dev, unsigned long ioad
...
@@ -836,11 +834,7 @@ static struct net_device *lmc_probe1 (struct net_device *dev, unsigned long ioad
* Allocate our own device structure
* Allocate our own device structure
*/
*/
#if LINUX_VERSION_CODE < 0x20363
dev
=
kmalloc
(
sizeof
(
struct
ppp_device
)
+
8
,
GFP_KERNEL
);
#else
dev
=
kmalloc
(
sizeof
(
struct
net_device
)
+
8
,
GFP_KERNEL
);
dev
=
kmalloc
(
sizeof
(
struct
net_device
)
+
8
,
GFP_KERNEL
);
#endif
if
(
dev
==
NULL
){
if
(
dev
==
NULL
){
printk
(
KERN_ERR
"lmc: kmalloc for device failed
\n
"
);
printk
(
KERN_ERR
"lmc: kmalloc for device failed
\n
"
);
return
NULL
;
return
NULL
;
...
@@ -909,10 +903,8 @@ static struct net_device *lmc_probe1 (struct net_device *dev, unsigned long ioad
...
@@ -909,10 +903,8 @@ static struct net_device *lmc_probe1 (struct net_device *dev, unsigned long ioad
dev
->
get_stats
=
lmc_get_stats
;
dev
->
get_stats
=
lmc_get_stats
;
dev
->
do_ioctl
=
lmc_ioctl
;
dev
->
do_ioctl
=
lmc_ioctl
;
dev
->
set_config
=
lmc_set_config
;
dev
->
set_config
=
lmc_set_config
;
#if LINUX_VERSION_CODE >= 0x20363
dev
->
tx_timeout
=
lmc_driver_timeout
;
dev
->
tx_timeout
=
lmc_driver_timeout
;
dev
->
watchdog_timeo
=
(
HZ
);
/* 1 second */
dev
->
watchdog_timeo
=
(
HZ
);
/* 1 second */
#endif
/*
/*
* Why were we changing this???
* Why were we changing this???
...
@@ -923,8 +915,6 @@ static struct net_device *lmc_probe1 (struct net_device *dev, unsigned long ioad
...
@@ -923,8 +915,6 @@ static struct net_device *lmc_probe1 (struct net_device *dev, unsigned long ioad
spin_lock_init
(
&
sc
->
lmc_lock
);
spin_lock_init
(
&
sc
->
lmc_lock
);
LMC_SETUP_20_DEV
;
printk
(
"%s: detected at %lx, irq %d
\n
"
,
dev
->
name
,
ioaddr
,
dev
->
irq
);
printk
(
"%s: detected at %lx, irq %d
\n
"
,
dev
->
name
,
ioaddr
,
dev
->
irq
);
if
(
register_netdev
(
dev
)
!=
0
)
{
if
(
register_netdev
(
dev
)
!=
0
)
{
...
@@ -1048,7 +1038,7 @@ int lmc_probe (struct net_device *dev) /*fold00*/
...
@@ -1048,7 +1038,7 @@ int lmc_probe (struct net_device *dev) /*fold00*/
* PCI bus, we are in trouble.
* PCI bus, we are in trouble.
*/
*/
if
(
!
LMC_PCI_PRESENT
())
{
if
(
!
pci_present
())
{
/* printk ("%s: We really want a pci bios!\n", dev->name);*/
/* printk ("%s: We really want a pci bios!\n", dev->name);*/
return
-
1
;
return
-
1
;
}
}
...
@@ -1124,11 +1114,7 @@ int lmc_probe (struct net_device *dev) /*fold00*/
...
@@ -1124,11 +1114,7 @@ int lmc_probe (struct net_device *dev) /*fold00*/
if
(
cards_found
<
1
)
if
(
cards_found
<
1
)
return
-
1
;
return
-
1
;
#if LINUX_VERSION_CODE >= 0x20200
return
foundaddr
;
return
foundaddr
;
#else
return
0
;
#endif
}
}
/* After this is called, packets can be sent.
/* After this is called, packets can be sent.
...
@@ -1199,11 +1185,7 @@ static int lmc_open (struct net_device *dev) /*fold00*/
...
@@ -1199,11 +1185,7 @@ static int lmc_open (struct net_device *dev) /*fold00*/
dev
->
do_ioctl
=
lmc_ioctl
;
dev
->
do_ioctl
=
lmc_ioctl
;
LMC_XMITTER_INIT
(
dev
);
netif_start_queue
(
dev
);
#if LINUX_VERSION_CODE < 0x20363
dev
->
start
=
1
;
#endif
sc
->
stats
.
tx_tbusy0
++
;
sc
->
stats
.
tx_tbusy0
++
;
...
@@ -1277,7 +1259,7 @@ static void lmc_running_reset (struct net_device *dev) /*fold00*/
...
@@ -1277,7 +1259,7 @@ static void lmc_running_reset (struct net_device *dev) /*fold00*/
//dev->flags |= IFF_RUNNING;
//dev->flags |= IFF_RUNNING;
LMC_XMITTER_FREE
(
dev
);
netif_wake_queue
(
dev
);
sc
->
lmc_txfull
=
0
;
sc
->
lmc_txfull
=
0
;
sc
->
stats
.
tx_tbusy0
++
;
sc
->
stats
.
tx_tbusy0
++
;
...
@@ -1327,7 +1309,7 @@ static int lmc_ifdown (struct net_device *dev) /*fold00*/
...
@@ -1327,7 +1309,7 @@ static int lmc_ifdown (struct net_device *dev) /*fold00*/
/* Don't let anything else go on right now */
/* Don't let anything else go on right now */
// dev->start = 0;
// dev->start = 0;
LMC_XMITTER_BUSY
(
dev
);
netif_stop_queue
(
dev
);
sc
->
stats
.
tx_tbusy1
++
;
sc
->
stats
.
tx_tbusy1
++
;
/* stop interrupts */
/* stop interrupts */
...
@@ -1360,23 +1342,20 @@ static int lmc_ifdown (struct net_device *dev) /*fold00*/
...
@@ -1360,23 +1342,20 @@ static int lmc_ifdown (struct net_device *dev) /*fold00*/
sc
->
lmc_rxring
[
i
].
length
=
0
;
sc
->
lmc_rxring
[
i
].
length
=
0
;
sc
->
lmc_rxring
[
i
].
buffer1
=
0xDEADBEEF
;
sc
->
lmc_rxring
[
i
].
buffer1
=
0xDEADBEEF
;
if
(
skb
!=
NULL
)
if
(
skb
!=
NULL
)
{
dev_kfree_skb
(
skb
);
LMC_SKB_FREE
(
skb
,
1
);
LMC_DEV_KFREE_SKB
(
skb
);
}
sc
->
lmc_rxq
[
i
]
=
NULL
;
sc
->
lmc_rxq
[
i
]
=
NULL
;
}
}
for
(
i
=
0
;
i
<
LMC_TXDESCS
;
i
++
)
for
(
i
=
0
;
i
<
LMC_TXDESCS
;
i
++
)
{
{
if
(
sc
->
lmc_txq
[
i
]
!=
NULL
)
if
(
sc
->
lmc_txq
[
i
]
!=
NULL
)
LMC_DEV_KFREE_SKB
(
sc
->
lmc_txq
[
i
]);
dev_kfree_skb
(
sc
->
lmc_txq
[
i
]);
sc
->
lmc_txq
[
i
]
=
NULL
;
sc
->
lmc_txq
[
i
]
=
NULL
;
}
}
lmc_led_off
(
sc
,
LMC_MII16_LED_ALL
);
lmc_led_off
(
sc
,
LMC_MII16_LED_ALL
);
LMC_XMITTER_FREE
(
dev
);
netif_wake_queue
(
dev
);
sc
->
stats
.
tx_tbusy0
++
;
sc
->
stats
.
tx_tbusy0
++
;
lmc_trace
(
dev
,
"lmc_ifdown out"
);
lmc_trace
(
dev
,
"lmc_ifdown out"
);
...
@@ -1496,14 +1475,12 @@ static irqreturn_t lmc_interrupt (int irq, void *dev_instance, struct pt_regs *r
...
@@ -1496,14 +1475,12 @@ static irqreturn_t lmc_interrupt (int irq, void *dev_instance, struct pt_regs *r
}
}
else
{
else
{
#if LINUX_VERSION_CODE >= 0x20200
sc
->
stats
.
tx_bytes
+=
sc
->
lmc_txring
[
i
].
length
&
0x7ff
;
sc
->
stats
.
tx_bytes
+=
sc
->
lmc_txring
[
i
].
length
&
0x7ff
;
#endif
sc
->
stats
.
tx_packets
++
;
sc
->
stats
.
tx_packets
++
;
}
}
//
LMC_DEV_KFREE_SKB
(sc->lmc_txq[i]);
//
dev_kfree_skb
(sc->lmc_txq[i]);
dev_kfree_skb_irq
(
sc
->
lmc_txq
[
i
]);
dev_kfree_skb_irq
(
sc
->
lmc_txq
[
i
]);
sc
->
lmc_txq
[
i
]
=
0
;
sc
->
lmc_txq
[
i
]
=
0
;
...
@@ -1518,20 +1495,14 @@ static irqreturn_t lmc_interrupt (int irq, void *dev_instance, struct pt_regs *r
...
@@ -1518,20 +1495,14 @@ static irqreturn_t lmc_interrupt (int irq, void *dev_instance, struct pt_regs *r
}
}
LMC_EVENT_LOG
(
LMC_EVENT_TBUSY0
,
n_compl
,
0
);
LMC_EVENT_LOG
(
LMC_EVENT_TBUSY0
,
n_compl
,
0
);
sc
->
lmc_txfull
=
0
;
sc
->
lmc_txfull
=
0
;
LMC_XMITTER_FREE
(
dev
);
netif_wake_queue
(
dev
);
sc
->
stats
.
tx_tbusy0
++
;
sc
->
stats
.
tx_tbusy0
++
;
#if LINUX_VERSION_CODE < 0x20363
mark_bh
(
NET_BH
);
/* Tell Linux to give me more packets */
#endif
#ifdef DEBUG
#ifdef DEBUG
sc
->
stats
.
dirtyTx
=
badtx
;
sc
->
stats
.
dirtyTx
=
badtx
;
sc
->
stats
.
lmc_next_tx
=
sc
->
lmc_next_tx
;
sc
->
stats
.
lmc_next_tx
=
sc
->
lmc_next_tx
;
sc
->
stats
.
lmc_txfull
=
sc
->
lmc_txfull
;
sc
->
stats
.
lmc_txfull
=
sc
->
lmc_txfull
;
#if LINUX_VERSION_CODE < 0x20363
sc
->
stats
.
tbusy
=
dev
->
tbusy
;
#endif
#endif
#endif
sc
->
lmc_taint_tx
=
badtx
;
sc
->
lmc_taint_tx
=
badtx
;
...
@@ -1592,7 +1563,7 @@ static int lmc_start_xmit (struct sk_buff *skb, struct net_device *dev) /*fold00
...
@@ -1592,7 +1563,7 @@ static int lmc_start_xmit (struct sk_buff *skb, struct net_device *dev) /*fold00
u32
flag
;
u32
flag
;
int
entry
;
int
entry
;
int
ret
=
0
;
int
ret
=
0
;
LMC_SPIN_FLAGS
;
unsigned
long
flags
;
lmc_trace
(
dev
,
"lmc_start_xmit in"
);
lmc_trace
(
dev
,
"lmc_start_xmit in"
);
...
@@ -1600,60 +1571,6 @@ static int lmc_start_xmit (struct sk_buff *skb, struct net_device *dev) /*fold00
...
@@ -1600,60 +1571,6 @@ static int lmc_start_xmit (struct sk_buff *skb, struct net_device *dev) /*fold00
spin_lock_irqsave
(
&
sc
->
lmc_lock
,
flags
);
spin_lock_irqsave
(
&
sc
->
lmc_lock
,
flags
);
/*
* If the transmitter is busy
* this must be the 5 second polling
* from the kernel which called us.
* Poke the chip and try to get it running
*
*/
#if LINUX_VERSION_CODE < 0x20363
if
(
dev
->
tbusy
!=
0
){
u32
csr6
;
printk
(
"%s: Xmitter busy|
\n
"
,
dev
->
name
);
sc
->
stats
.
tx_tbusy_calls
++
;
if
(
jiffies
-
dev
->
trans_start
<
TX_TIMEOUT
)
{
ret
=
1
;
goto
lmc_start_xmit_bug_out
;
}
/*
* Chip seems to have locked up
* Reset it
* This whips out all our decriptor
* table and starts from scartch
*/
LMC_EVENT_LOG
(
LMC_EVENT_XMTPRCTMO
,
LMC_CSR_READ
(
sc
,
csr_status
),
sc
->
stats
.
tx_ProcTimeout
);
lmc_running_reset
(
dev
);
LMC_EVENT_LOG
(
LMC_EVENT_RESET1
,
LMC_CSR_READ
(
sc
,
csr_status
),
0
);
LMC_EVENT_LOG
(
LMC_EVENT_RESET2
,
lmc_mii_readreg
(
sc
,
0
,
16
),
lmc_mii_readreg
(
sc
,
0
,
17
));
/* restart the tx processes */
csr6
=
LMC_CSR_READ
(
sc
,
csr_command
);
LMC_CSR_WRITE
(
sc
,
csr_command
,
csr6
|
0x0002
);
LMC_CSR_WRITE
(
sc
,
csr_command
,
csr6
|
0x2002
);
/* immediate transmit */
LMC_CSR_WRITE
(
sc
,
csr_txpoll
,
0
);
sc
->
stats
.
tx_errors
++
;
sc
->
stats
.
tx_ProcTimeout
++
;
/* -baz */
dev
->
trans_start
=
jiffies
;
ret
=
1
;
goto
lmc_start_xmit_bug_out
;
}
#endif
/* normal path, tbusy known to be zero */
/* normal path, tbusy known to be zero */
entry
=
sc
->
lmc_next_tx
%
LMC_TXDESCS
;
entry
=
sc
->
lmc_next_tx
%
LMC_TXDESCS
;
...
@@ -1669,26 +1586,26 @@ static int lmc_start_xmit (struct sk_buff *skb, struct net_device *dev) /*fold00
...
@@ -1669,26 +1586,26 @@ static int lmc_start_xmit (struct sk_buff *skb, struct net_device *dev) /*fold00
{
{
/* Do not interrupt on completion of this packet */
/* Do not interrupt on completion of this packet */
flag
=
0x60000000
;
flag
=
0x60000000
;
LMC_XMITTER_FREE
(
dev
);
netif_wake_queue
(
dev
);
}
}
else
if
(
sc
->
lmc_next_tx
-
sc
->
lmc_taint_tx
==
LMC_TXDESCS
/
2
)
else
if
(
sc
->
lmc_next_tx
-
sc
->
lmc_taint_tx
==
LMC_TXDESCS
/
2
)
{
{
/* This generates an interrupt on completion of this packet */
/* This generates an interrupt on completion of this packet */
flag
=
0xe0000000
;
flag
=
0xe0000000
;
LMC_XMITTER_FREE
(
dev
);
netif_wake_queue
(
dev
);
}
}
else
if
(
sc
->
lmc_next_tx
-
sc
->
lmc_taint_tx
<
LMC_TXDESCS
-
1
)
else
if
(
sc
->
lmc_next_tx
-
sc
->
lmc_taint_tx
<
LMC_TXDESCS
-
1
)
{
{
/* Do not interrupt on completion of this packet */
/* Do not interrupt on completion of this packet */
flag
=
0x60000000
;
flag
=
0x60000000
;
LMC_XMITTER_FREE
(
dev
);
netif_wake_queue
(
dev
);
}
}
else
else
{
{
/* This generates an interrupt on completion of this packet */
/* This generates an interrupt on completion of this packet */
flag
=
0xe0000000
;
flag
=
0xe0000000
;
sc
->
lmc_txfull
=
1
;
sc
->
lmc_txfull
=
1
;
LMC_XMITTER_BUSY
(
dev
);
netif_stop_queue
(
dev
);
}
}
#else
#else
flag
=
LMC_TDES_INTERRUPT_ON_COMPLETION
;
flag
=
LMC_TDES_INTERRUPT_ON_COMPLETION
;
...
@@ -1696,7 +1613,7 @@ static int lmc_start_xmit (struct sk_buff *skb, struct net_device *dev) /*fold00
...
@@ -1696,7 +1613,7 @@ static int lmc_start_xmit (struct sk_buff *skb, struct net_device *dev) /*fold00
if
(
sc
->
lmc_next_tx
-
sc
->
lmc_taint_tx
>=
LMC_TXDESCS
-
1
)
if
(
sc
->
lmc_next_tx
-
sc
->
lmc_taint_tx
>=
LMC_TXDESCS
-
1
)
{
/* ring full, go busy */
{
/* ring full, go busy */
sc
->
lmc_txfull
=
1
;
sc
->
lmc_txfull
=
1
;
LMC_XMITTER_BUSY
(
dev
);
netif_stop_queue
(
dev
);
sc
->
stats
.
tx_tbusy1
++
;
sc
->
stats
.
tx_tbusy1
++
;
LMC_EVENT_LOG
(
LMC_EVENT_TBUSY1
,
entry
,
0
);
LMC_EVENT_LOG
(
LMC_EVENT_TBUSY1
,
entry
,
0
);
}
}
...
@@ -1726,10 +1643,6 @@ static int lmc_start_xmit (struct sk_buff *skb, struct net_device *dev) /*fold00
...
@@ -1726,10 +1643,6 @@ static int lmc_start_xmit (struct sk_buff *skb, struct net_device *dev) /*fold00
dev
->
trans_start
=
jiffies
;
dev
->
trans_start
=
jiffies
;
#if LINUX_VERSION_CODE < 0x20363
lmc_start_xmit_bug_out:
#endif
spin_unlock_irqrestore
(
&
sc
->
lmc_lock
,
flags
);
spin_unlock_irqrestore
(
&
sc
->
lmc_lock
,
flags
);
lmc_trace
(
dev
,
"lmc_start_xmit_out"
);
lmc_trace
(
dev
,
"lmc_start_xmit_out"
);
...
@@ -1815,7 +1728,6 @@ static int lmc_rx (struct net_device *dev) /*fold00*/
...
@@ -1815,7 +1728,6 @@ static int lmc_rx (struct net_device *dev) /*fold00*/
if
(
skb
==
0x0
){
if
(
skb
==
0x0
){
nsb
=
dev_alloc_skb
(
LMC_PKT_BUF_SZ
+
2
);
nsb
=
dev_alloc_skb
(
LMC_PKT_BUF_SZ
+
2
);
if
(
nsb
)
{
if
(
nsb
)
{
LMC_SKB_FREE
(
nsb
,
1
);
sc
->
lmc_rxq
[
i
]
=
nsb
;
sc
->
lmc_rxq
[
i
]
=
nsb
;
nsb
->
dev
=
dev
;
nsb
->
dev
=
dev
;
sc
->
lmc_rxring
[
i
].
buffer1
=
virt_to_bus
(
nsb
->
tail
);
sc
->
lmc_rxring
[
i
].
buffer1
=
virt_to_bus
(
nsb
->
tail
);
...
@@ -1859,7 +1771,6 @@ static int lmc_rx (struct net_device *dev) /*fold00*/
...
@@ -1859,7 +1771,6 @@ static int lmc_rx (struct net_device *dev) /*fold00*/
*/
*/
nsb
=
dev_alloc_skb
(
LMC_PKT_BUF_SZ
+
2
);
nsb
=
dev_alloc_skb
(
LMC_PKT_BUF_SZ
+
2
);
if
(
nsb
)
{
if
(
nsb
)
{
LMC_SKB_FREE
(
nsb
,
1
);
sc
->
lmc_rxq
[
i
]
=
nsb
;
sc
->
lmc_rxq
[
i
]
=
nsb
;
nsb
->
dev
=
dev
;
nsb
->
dev
=
dev
;
sc
->
lmc_rxring
[
i
].
buffer1
=
virt_to_bus
(
nsb
->
tail
);
sc
->
lmc_rxring
[
i
].
buffer1
=
virt_to_bus
(
nsb
->
tail
);
...
@@ -1948,7 +1859,7 @@ static int lmc_rx (struct net_device *dev) /*fold00*/
...
@@ -1948,7 +1859,7 @@ static int lmc_rx (struct net_device *dev) /*fold00*/
static
struct
net_device_stats
*
lmc_get_stats
(
struct
net_device
*
dev
)
/*fold00*/
static
struct
net_device_stats
*
lmc_get_stats
(
struct
net_device
*
dev
)
/*fold00*/
{
{
lmc_softc_t
*
sc
;
lmc_softc_t
*
sc
;
LMC_SPIN_FLAGS
;
unsigned
long
flags
;
lmc_trace
(
dev
,
"lmc_get_stats in"
);
lmc_trace
(
dev
,
"lmc_get_stats in"
);
...
@@ -2148,7 +2059,6 @@ static void lmc_softreset (lmc_softc_t * const sc) /*fold00*/
...
@@ -2148,7 +2059,6 @@ static void lmc_softreset (lmc_softc_t * const sc) /*fold00*/
}
}
skb
->
dev
=
sc
->
lmc_device
;
skb
->
dev
=
sc
->
lmc_device
;
LMC_SKB_FREE
(
skb
,
1
);
/* owned by 21140 */
/* owned by 21140 */
sc
->
lmc_rxring
[
i
].
status
=
0x80000000
;
sc
->
lmc_rxring
[
i
].
status
=
0x80000000
;
...
@@ -2367,11 +2277,10 @@ static void lmc_initcsrs(lmc_softc_t * const sc, lmc_csrptr_t csr_base, /*fold00
...
@@ -2367,11 +2277,10 @@ static void lmc_initcsrs(lmc_softc_t * const sc, lmc_csrptr_t csr_base, /*fold00
lmc_trace
(
sc
->
lmc_device
,
"lmc_initcsrs out"
);
lmc_trace
(
sc
->
lmc_device
,
"lmc_initcsrs out"
);
}
}
#if LINUX_VERSION_CODE >= 0x20363
static
void
lmc_driver_timeout
(
struct
net_device
*
dev
)
{
/*fold00*/
static
void
lmc_driver_timeout
(
struct
net_device
*
dev
)
{
/*fold00*/
lmc_softc_t
*
sc
;
lmc_softc_t
*
sc
;
u32
csr6
;
u32
csr6
;
LMC_SPIN_FLAGS
;
unsigned
long
flags
;
lmc_trace
(
dev
,
"lmc_driver_timeout in"
);
lmc_trace
(
dev
,
"lmc_driver_timeout in"
);
...
@@ -2430,4 +2339,3 @@ int lmc_setup(void) { /*FOLD00*/
...
@@ -2430,4 +2339,3 @@ int lmc_setup(void) { /*FOLD00*/
return
lmc_probe
(
NULL
);
return
lmc_probe
(
NULL
);
}
}
#endif
drivers/net/wan/lmc/lmc_media.c
View file @
1697b806
/* $Id: lmc_media.c,v 1.13 2000/04/11 05:25:26 asj Exp $ */
/* $Id: lmc_media.c,v 1.13 2000/04/11 05:25:26 asj Exp $ */
#include <linux/version.h>
#include <linux/config.h>
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/string.h>
...
@@ -11,9 +10,6 @@
...
@@ -11,9 +10,6 @@
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/interrupt.h>
#include <linux/pci.h>
#include <linux/pci.h>
#if LINUX_VERSION_CODE < 0x20155
#include <linux/bios32.h>
#endif
#include <linux/in.h>
#include <linux/in.h>
#include <linux/if_arp.h>
#include <linux/if_arp.h>
#include <linux/netdevice.h>
#include <linux/netdevice.h>
...
@@ -28,11 +24,8 @@
...
@@ -28,11 +24,8 @@
#include <asm/io.h>
#include <asm/io.h>
#include <asm/dma.h>
#include <asm/dma.h>
#if LINUX_VERSION_CODE >= 0x20200
#include <asm/uaccess.h>
#include <asm/uaccess.h>
#endif
#include "lmc_ver.h"
#include "lmc.h"
#include "lmc.h"
#include "lmc_var.h"
#include "lmc_var.h"
#include "lmc_ioctl.h"
#include "lmc_ioctl.h"
...
...
drivers/net/wan/lmc/lmc_proto.c
View file @
1697b806
...
@@ -19,7 +19,6 @@
...
@@ -19,7 +19,6 @@
* Driver for the LanMedia LMC5200, LMC5245, LMC1000, LMC1200 cards.
* Driver for the LanMedia LMC5200, LMC5245, LMC1000, LMC1200 cards.
*/
*/
#include <linux/version.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/string.h>
#include <linux/timer.h>
#include <linux/timer.h>
...
@@ -46,7 +45,6 @@
...
@@ -46,7 +45,6 @@
#include <asm/dma.h>
#include <asm/dma.h>
#include <asm/smp.h>
#include <asm/smp.h>
#include "lmc_ver.h"
#include "lmc.h"
#include "lmc.h"
#include "lmc_var.h"
#include "lmc_var.h"
#include "lmc_debug.h"
#include "lmc_debug.h"
...
@@ -66,14 +64,6 @@
...
@@ -66,14 +64,6 @@
#define SPPP_attach(d) (void)0
#define SPPP_attach(d) (void)0
#define SPPP_do_ioctl(d,i,c) -EOPNOTSUPP
#define SPPP_do_ioctl(d,i,c) -EOPNOTSUPP
#else
#else
#if LINUX_VERSION_CODE < 0x20363
#define SPPP_attach(x) sppp_attach((struct ppp_device *)(x)->lmc_device)
#define SPPP_detach(x) sppp_detach((x)->lmc_device)
#define SPPP_open(x) sppp_open((x)->lmc_device)
#define SPPP_reopen(x) sppp_reopen((x)->lmc_device)
#define SPPP_close(x) sppp_close((x)->lmc_device)
#define SPPP_do_ioctl(x, y, z) sppp_do_ioctl((x)->lmc_device, (y), (z))
#else
#define SPPP_attach(x) sppp_attach((x)->pd)
#define SPPP_attach(x) sppp_attach((x)->pd)
#define SPPP_detach(x) sppp_detach((x)->pd->dev)
#define SPPP_detach(x) sppp_detach((x)->pd->dev)
#define SPPP_open(x) sppp_open((x)->pd->dev)
#define SPPP_open(x) sppp_open((x)->pd->dev)
...
@@ -81,7 +71,6 @@
...
@@ -81,7 +71,6 @@
#define SPPP_close(x) sppp_close((x)->pd->dev)
#define SPPP_close(x) sppp_close((x)->pd->dev)
#define SPPP_do_ioctl(x, y, z) sppp_do_ioctl((x)->pd->dev, (y), (z))
#define SPPP_do_ioctl(x, y, z) sppp_do_ioctl((x)->pd->dev, (y), (z))
#endif
#endif
#endif
// init
// init
void
lmc_proto_init
(
lmc_softc_t
*
sc
)
/*FOLD00*/
void
lmc_proto_init
(
lmc_softc_t
*
sc
)
/*FOLD00*/
...
@@ -89,15 +78,12 @@ void lmc_proto_init(lmc_softc_t *sc) /*FOLD00*/
...
@@ -89,15 +78,12 @@ void lmc_proto_init(lmc_softc_t *sc) /*FOLD00*/
lmc_trace
(
sc
->
lmc_device
,
"lmc_proto_init in"
);
lmc_trace
(
sc
->
lmc_device
,
"lmc_proto_init in"
);
switch
(
sc
->
if_type
){
switch
(
sc
->
if_type
){
case
LMC_PPP
:
case
LMC_PPP
:
#if LINUX_VERSION_CODE >= 0x20363
sc
->
pd
=
kmalloc
(
sizeof
(
struct
ppp_device
),
GFP_KERNEL
);
sc
->
pd
=
kmalloc
(
sizeof
(
struct
ppp_device
),
GFP_KERNEL
);
if
(
!
sc
->
pd
)
{
if
(
!
sc
->
pd
)
{
printk
(
"lmc_proto_init(): kmalloc failure!
\n
"
);
printk
(
"lmc_proto_init(): kmalloc failure!
\n
"
);
return
;
return
;
}
}
sc
->
pd
->
dev
=
sc
->
lmc_device
;
sc
->
pd
->
dev
=
sc
->
lmc_device
;
#endif
sc
->
if_ptr
=
sc
->
pd
;
sc
->
if_ptr
=
sc
->
pd
;
break
;
break
;
case
LMC_RAW
:
case
LMC_RAW
:
...
...
drivers/net/wan/lmc/lmc_var.h
View file @
1697b806
...
@@ -48,9 +48,6 @@ typedef struct lmc___ctl lmc_ctl_t;
...
@@ -48,9 +48,6 @@ typedef struct lmc___ctl lmc_ctl_t;
#define u_int16_t u16
#define u_int16_t u16
#define u_int8_t u8
#define u_int8_t u8
#define tulip_uint32_t u32
#define tulip_uint32_t u32
#if LINUX_VERSION_CODE < 0x20155
#define u_int32_t u32
#endif
#define LMC_REG_RANGE 0x80
#define LMC_REG_RANGE 0x80
...
@@ -410,9 +407,7 @@ struct lmc___softc {
...
@@ -410,9 +407,7 @@ struct lmc___softc {
u32
last_int
;
u32
last_int
;
u32
num_int
;
u32
num_int
;
#if LINUX_VERSION_CODE >= 0x20200
spinlock_t
lmc_lock
;
spinlock_t
lmc_lock
;
#endif
u_int16_t
if_type
;
/* PPP or NET */
u_int16_t
if_type
;
/* PPP or NET */
struct
ppp_device
*
pd
;
struct
ppp_device
*
pd
;
...
@@ -550,10 +545,6 @@ struct lmc___softc {
...
@@ -550,10 +545,6 @@ struct lmc___softc {
#define LMC_CRC_LEN_16 2
/* 16-bit CRC */
#define LMC_CRC_LEN_16 2
/* 16-bit CRC */
#define LMC_CRC_LEN_32 4
#define LMC_CRC_LEN_32 4
#if LINUX_VERSION_CODE < 0x20100
#define test_and_set_bit(val, addr) set_bit(val, addr)
#endif
#ifdef LMC_HDLC
#ifdef LMC_HDLC
/* definition of an hdlc header. */
/* definition of an hdlc header. */
struct
hdlc_hdr
struct
hdlc_hdr
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment