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
a36f4961
Commit
a36f4961
authored
Sep 30, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
parents
a3ca066e
a4199b0b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
47 additions
and
10 deletions
+47
-10
MAINTAINERS
MAINTAINERS
+3
-0
net/atm/lec.c
net/atm/lec.c
+40
-3
net/ipv4/tcp_input.c
net/ipv4/tcp_input.c
+0
-2
net/ipv4/tcp_output.c
net/ipv4/tcp_output.c
+4
-5
No files found.
MAINTAINERS
View file @
a36f4961
...
@@ -1743,8 +1743,11 @@ S: Maintained
...
@@ -1743,8 +1743,11 @@ S: Maintained
IPVS
IPVS
P: Wensong Zhang
P: Wensong Zhang
M: wensong@linux-vs.org
M: wensong@linux-vs.org
P: Simon Horman
M: horms@verge.net.au
P: Julian Anastasov
P: Julian Anastasov
M: ja@ssi.bg
M: ja@ssi.bg
L: netdev@vger.kernel.org
S: Maintained
S: Maintained
NFS CLIENT
NFS CLIENT
...
...
net/atm/lec.c
View file @
a36f4961
...
@@ -686,9 +686,19 @@ static unsigned char lec_ctrl_magic[] = {
...
@@ -686,9 +686,19 @@ static unsigned char lec_ctrl_magic[] = {
0x01
,
0x01
,
0x01
};
0x01
};
#define LEC_DATA_DIRECT_8023 2
#define LEC_DATA_DIRECT_8025 3
static
int
lec_is_data_direct
(
struct
atm_vcc
*
vcc
)
{
return
((
vcc
->
sap
.
blli
[
0
].
l3
.
tr9577
.
snap
[
4
]
==
LEC_DATA_DIRECT_8023
)
||
(
vcc
->
sap
.
blli
[
0
].
l3
.
tr9577
.
snap
[
4
]
==
LEC_DATA_DIRECT_8025
));
}
static
void
static
void
lec_push
(
struct
atm_vcc
*
vcc
,
struct
sk_buff
*
skb
)
lec_push
(
struct
atm_vcc
*
vcc
,
struct
sk_buff
*
skb
)
{
{
unsigned
long
flags
;
struct
net_device
*
dev
=
(
struct
net_device
*
)
vcc
->
proto_data
;
struct
net_device
*
dev
=
(
struct
net_device
*
)
vcc
->
proto_data
;
struct
lec_priv
*
priv
=
(
struct
lec_priv
*
)
dev
->
priv
;
struct
lec_priv
*
priv
=
(
struct
lec_priv
*
)
dev
->
priv
;
...
@@ -728,7 +738,8 @@ lec_push(struct atm_vcc *vcc, struct sk_buff *skb)
...
@@ -728,7 +738,8 @@ lec_push(struct atm_vcc *vcc, struct sk_buff *skb)
skb_queue_tail
(
&
sk
->
sk_receive_queue
,
skb
);
skb_queue_tail
(
&
sk
->
sk_receive_queue
,
skb
);
sk
->
sk_data_ready
(
sk
,
skb
->
len
);
sk
->
sk_data_ready
(
sk
,
skb
->
len
);
}
else
{
/* Data frame, queue to protocol handlers */
}
else
{
/* Data frame, queue to protocol handlers */
unsigned
char
*
dst
;
struct
lec_arp_table
*
entry
;
unsigned
char
*
src
,
*
dst
;
atm_return
(
vcc
,
skb
->
truesize
);
atm_return
(
vcc
,
skb
->
truesize
);
if
(
*
(
uint16_t
*
)
skb
->
data
==
htons
(
priv
->
lecid
)
||
if
(
*
(
uint16_t
*
)
skb
->
data
==
htons
(
priv
->
lecid
)
||
...
@@ -741,10 +752,30 @@ lec_push(struct atm_vcc *vcc, struct sk_buff *skb)
...
@@ -741,10 +752,30 @@ lec_push(struct atm_vcc *vcc, struct sk_buff *skb)
return
;
return
;
}
}
#ifdef CONFIG_TR
#ifdef CONFIG_TR
if
(
priv
->
is_trdev
)
dst
=
((
struct
lecdatahdr_8025
*
)
skb
->
data
)
->
h_dest
;
if
(
priv
->
is_trdev
)
dst
=
((
struct
lecdatahdr_8025
*
)
skb
->
data
)
->
h_dest
;
else
else
#endif
#endif
dst
=
((
struct
lecdatahdr_8023
*
)
skb
->
data
)
->
h_dest
;
dst
=
((
struct
lecdatahdr_8023
*
)
skb
->
data
)
->
h_dest
;
/* If this is a Data Direct VCC, and the VCC does not match
* the LE_ARP cache entry, delete the LE_ARP cache entry.
*/
spin_lock_irqsave
(
&
priv
->
lec_arp_lock
,
flags
);
if
(
lec_is_data_direct
(
vcc
))
{
#ifdef CONFIG_TR
if
(
priv
->
is_trdev
)
src
=
((
struct
lecdatahdr_8025
*
)
skb
->
data
)
->
h_source
;
else
#endif
src
=
((
struct
lecdatahdr_8023
*
)
skb
->
data
)
->
h_source
;
entry
=
lec_arp_find
(
priv
,
src
);
if
(
entry
&&
entry
->
vcc
!=
vcc
)
{
lec_arp_remove
(
priv
,
entry
);
kfree
(
entry
);
}
}
spin_unlock_irqrestore
(
&
priv
->
lec_arp_lock
,
flags
);
if
(
!
(
dst
[
0
]
&
0x01
)
&&
/* Never filter Multi/Broadcast */
if
(
!
(
dst
[
0
]
&
0x01
)
&&
/* Never filter Multi/Broadcast */
!
priv
->
is_proxy
&&
/* Proxy wants all the packets */
!
priv
->
is_proxy
&&
/* Proxy wants all the packets */
...
@@ -1990,6 +2021,12 @@ lec_arp_resolve(struct lec_priv *priv, unsigned char *mac_to_find,
...
@@ -1990,6 +2021,12 @@ lec_arp_resolve(struct lec_priv *priv, unsigned char *mac_to_find,
found
=
entry
->
vcc
;
found
=
entry
->
vcc
;
goto
out
;
goto
out
;
}
}
/* If the LE_ARP cache entry is still pending, reset count to 0
* so another LE_ARP request can be made for this frame.
*/
if
(
entry
->
status
==
ESI_ARP_PENDING
)
{
entry
->
no_tries
=
0
;
}
/* Data direct VC not yet set up, check to see if the unknown
/* Data direct VC not yet set up, check to see if the unknown
frame count is greater than the limit. If the limit has
frame count is greater than the limit. If the limit has
not been reached, allow the caller to send packet to
not been reached, allow the caller to send packet to
...
...
net/ipv4/tcp_input.c
View file @
a36f4961
...
@@ -355,8 +355,6 @@ static void tcp_clamp_window(struct sock *sk, struct tcp_sock *tp)
...
@@ -355,8 +355,6 @@ static void tcp_clamp_window(struct sock *sk, struct tcp_sock *tp)
app_win
-=
icsk
->
icsk_ack
.
rcv_mss
;
app_win
-=
icsk
->
icsk_ack
.
rcv_mss
;
app_win
=
max
(
app_win
,
2U
*
tp
->
advmss
);
app_win
=
max
(
app_win
,
2U
*
tp
->
advmss
);
if
(
!
ofo_win
)
tp
->
window_clamp
=
min
(
tp
->
window_clamp
,
app_win
);
tp
->
rcv_ssthresh
=
min
(
tp
->
window_clamp
,
2U
*
tp
->
advmss
);
tp
->
rcv_ssthresh
=
min
(
tp
->
window_clamp
,
2U
*
tp
->
advmss
);
}
}
}
}
...
...
net/ipv4/tcp_output.c
View file @
a36f4961
...
@@ -194,12 +194,11 @@ void tcp_select_initial_window(int __space, __u32 mss,
...
@@ -194,12 +194,11 @@ void tcp_select_initial_window(int __space, __u32 mss,
* will be satisfied with 2.
* will be satisfied with 2.
*/
*/
if
(
mss
>
(
1
<<*
rcv_wscale
))
{
if
(
mss
>
(
1
<<*
rcv_wscale
))
{
int
init_cwnd
;
int
init_cwnd
=
4
;
if
(
mss
>
1460
*
3
)
if
(
mss
>
1460
)
init_cwnd
=
2
;
init_cwnd
=
2
;
else
else
if
(
mss
>
1460
)
init_cwnd
=
(
mss
>
1095
)
?
3
:
4
;
init_cwnd
=
3
;
if
(
*
rcv_wnd
>
init_cwnd
*
mss
)
if
(
*
rcv_wnd
>
init_cwnd
*
mss
)
*
rcv_wnd
=
init_cwnd
*
mss
;
*
rcv_wnd
=
init_cwnd
*
mss
;
}
}
...
...
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