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
nexedi
linux
Commits
6cae1f24
Commit
6cae1f24
authored
Jan 06, 2005
by
Jeff Garzik
Browse files
Options
Browse Files
Download
Plain Diff
Merge pobox.com:/garz/repo/netdev-2.6/8390
into pobox.com:/garz/repo/net-drivers-2.6
parents
05c5f695
a358cc9e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
12 deletions
+9
-12
drivers/net/8390.c
drivers/net/8390.c
+9
-12
No files found.
drivers/net/8390.c
View file @
6cae1f24
...
...
@@ -43,6 +43,7 @@
Paul Gortmaker : Separate out Tx timeout code from Tx path.
Paul Gortmaker : Remove old unused single Tx buffer code.
Hayato Fujiwara : Add m32r support.
Paul Gortmaker : use skb_padto() instead of stack scratch area
Sources:
The National Semiconductor LAN Databook, and the 3Com 3c503 databook.
...
...
@@ -272,11 +273,15 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
long
e8390_base
=
dev
->
base_addr
;
struct
ei_device
*
ei_local
=
(
struct
ei_device
*
)
netdev_priv
(
dev
);
int
length
,
send_length
,
output_page
;
int
send_length
=
skb
->
len
,
output_page
;
unsigned
long
flags
;
char
scratch
[
ETH_ZLEN
];
length
=
skb
->
len
;
if
(
skb
->
len
<
ETH_ZLEN
)
{
skb
=
skb_padto
(
skb
,
ETH_ZLEN
);
if
(
skb
==
NULL
)
return
0
;
send_length
=
ETH_ZLEN
;
}
/* Mask interrupts from the ethercard.
SMP: We have to grab the lock here otherwise the IRQ handler
...
...
@@ -298,8 +303,6 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
ei_local
->
irqlock
=
1
;
send_length
=
ETH_ZLEN
<
length
?
length
:
ETH_ZLEN
;
/*
* We have two Tx slots available for use. Find the first free
* slot, and then perform some sanity checks. With two Tx bufs,
...
...
@@ -344,13 +347,7 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
* trigger the send later, upon receiving a Tx done interrupt.
*/
if
(
length
==
send_length
)
ei_block_output
(
dev
,
length
,
skb
->
data
,
output_page
);
else
{
memset
(
scratch
,
0
,
ETH_ZLEN
);
memcpy
(
scratch
,
skb
->
data
,
skb
->
len
);
ei_block_output
(
dev
,
ETH_ZLEN
,
scratch
,
output_page
);
}
ei_block_output
(
dev
,
send_length
,
skb
->
data
,
output_page
);
if
(
!
ei_local
->
txing
)
{
...
...
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