Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
bec571ec
Commit
bec571ec
authored
May 28, 2009
by
David S. Miller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
decnet: Use SKB queue and list helpers instead of doing it by-hand.
Signed-off-by:
David S. Miller
<
davem@davemloft.net
>
parent
b6211ae7
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
7 additions
and
20 deletions
+7
-20
net/decnet/af_decnet.c
net/decnet/af_decnet.c
+5
-14
net/decnet/dn_nsp_out.c
net/decnet/dn_nsp_out.c
+2
-6
No files found.
net/decnet/af_decnet.c
View file @
bec571ec
...
...
@@ -1250,14 +1250,8 @@ static int dn_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
if
(
skb
)
{
amount
=
skb
->
len
;
}
else
{
skb
=
sk
->
sk_receive_queue
.
next
;
for
(;;)
{
if
(
skb
==
(
struct
sk_buff
*
)
&
sk
->
sk_receive_queue
)
break
;
skb_queue_walk
(
&
sk
->
sk_receive_queue
,
skb
)
amount
+=
skb
->
len
;
skb
=
skb
->
next
;
}
}
release_sock
(
sk
);
err
=
put_user
(
amount
,
(
int
__user
*
)
arg
);
...
...
@@ -1644,13 +1638,13 @@ static int __dn_getsockopt(struct socket *sock, int level,int optname, char __us
static
int
dn_data_ready
(
struct
sock
*
sk
,
struct
sk_buff_head
*
q
,
int
flags
,
int
target
)
{
struct
sk_buff
*
skb
=
q
->
next
;
struct
sk_buff
*
skb
;
int
len
=
0
;
if
(
flags
&
MSG_OOB
)
return
!
skb_queue_empty
(
q
)
?
1
:
0
;
while
(
skb
!=
(
struct
sk_buff
*
)
q
)
{
skb_queue_walk
(
q
,
skb
)
{
struct
dn_skb_cb
*
cb
=
DN_SKB_CB
(
skb
);
len
+=
skb
->
len
;
...
...
@@ -1666,8 +1660,6 @@ static int dn_data_ready(struct sock *sk, struct sk_buff_head *q, int flags, int
/* minimum data length for read exceeded */
if
(
len
>=
target
)
return
1
;
skb
=
skb
->
next
;
}
return
0
;
...
...
@@ -1683,7 +1675,7 @@ static int dn_recvmsg(struct kiocb *iocb, struct socket *sock,
size_t
target
=
size
>
1
?
1
:
0
;
size_t
copied
=
0
;
int
rv
=
0
;
struct
sk_buff
*
skb
,
*
n
skb
;
struct
sk_buff
*
skb
,
*
n
;
struct
dn_skb_cb
*
cb
=
NULL
;
unsigned
char
eor
=
0
;
long
timeo
=
sock_rcvtimeo
(
sk
,
flags
&
MSG_DONTWAIT
);
...
...
@@ -1758,7 +1750,7 @@ static int dn_recvmsg(struct kiocb *iocb, struct socket *sock,
finish_wait
(
sk
->
sk_sleep
,
&
wait
);
}
for
(
skb
=
queue
->
next
;
skb
!=
(
struct
sk_buff
*
)
queue
;
skb
=
nskb
)
{
skb_queue_walk_safe
(
queue
,
skb
,
n
)
{
unsigned
int
chunk
=
skb
->
len
;
cb
=
DN_SKB_CB
(
skb
);
...
...
@@ -1775,7 +1767,6 @@ static int dn_recvmsg(struct kiocb *iocb, struct socket *sock,
skb_pull
(
skb
,
chunk
);
eor
=
cb
->
nsp_flags
&
0x40
;
nskb
=
skb
->
next
;
if
(
skb
->
len
==
0
)
{
skb_unlink
(
skb
,
queue
);
...
...
net/decnet/dn_nsp_out.c
View file @
bec571ec
...
...
@@ -382,7 +382,7 @@ int dn_nsp_check_xmit_queue(struct sock *sk, struct sk_buff *skb, struct sk_buff
{
struct
dn_skb_cb
*
cb
=
DN_SKB_CB
(
skb
);
struct
dn_scp
*
scp
=
DN_SK
(
sk
);
struct
sk_buff
*
skb2
,
*
list
,
*
ack
=
NULL
;
struct
sk_buff
*
skb2
,
*
n
,
*
ack
=
NULL
;
int
wakeup
=
0
;
int
try_retrans
=
0
;
unsigned
long
reftime
=
cb
->
stamp
;
...
...
@@ -390,9 +390,7 @@ int dn_nsp_check_xmit_queue(struct sock *sk, struct sk_buff *skb, struct sk_buff
unsigned
short
xmit_count
;
unsigned
short
segnum
;
skb2
=
q
->
next
;
list
=
(
struct
sk_buff
*
)
q
;
while
(
list
!=
skb2
)
{
skb_queue_walk_safe
(
q
,
skb2
,
n
)
{
struct
dn_skb_cb
*
cb2
=
DN_SKB_CB
(
skb2
);
if
(
dn_before_or_equal
(
cb2
->
segnum
,
acknum
))
...
...
@@ -400,8 +398,6 @@ int dn_nsp_check_xmit_queue(struct sock *sk, struct sk_buff *skb, struct sk_buff
/* printk(KERN_DEBUG "ack: %s %04x %04x\n", ack ? "ACK" : "SKIP", (int)cb2->segnum, (int)acknum); */
skb2
=
skb2
->
next
;
if
(
ack
==
NULL
)
continue
;
...
...
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