From: Zhikui Chen <zhikui.chen@rus.uni-stuttgart.de>
To: netdev@oss.sgi.com, majordomo@oss.sgi.com
Subject: An issue on one network development.
Date: Fri, 20 Aug 2004 19:17:57 +0200 [thread overview]
Message-ID: <41263245.8050305@rus.uni-stuttgart.de> (raw)
Dear all,
HELP!
I am writing a DCCP code in Linux kernel 2.6.6, I met a problem, which
bored me about two weeks. Hope you to give me some hints, thanks in
advance. The problem is on structure sock in dccp_lookup_listen of
dccp_lookup.
When dccp_rcv (similar to udp_rcv and TCP_*_rcv) called dccp_v4_lookup(
similar to TCP_v4_lookup), the dccp_v4_lookup will call
dccp_v4_lookup_listen. Running is dead when the 7th line is implemented,
I checked, problem is from sk=__sk_head(head). And I also checked the
printed value of __sk_head(head) is correct.
The other way, I changed the first line as struct sock *sk; (remove
"=NULL"), running is dead here. I doubt the problem belongs to memory.
My dccp_v4_lookup is so that:
static inline struct sock *dccp_v4_lookup_listen(u32 daddr, u16
dport,int dif)
{
struct sock *sk = NULL;
struct hlist_head *head;
read_lock(&dccp_lhash_lock);
head = &dccp_hash[ntohs(dport) & (DCCP_HTABLE_SIZE - 1)];
if (!hlist_empty(head)) {
struct inet_opt *inet = inet_sk(sk = __sk_head(head));
if (inet->num == ntohs(dport) && !(sk->sk_node.next &&
(!inet->rcv_saddr || inet->rcv_saddr == daddr) &&
(sk->sk_family == PF_INET || !ipv6_only_sock(sk)) &&
!sk->sk_bound_dev_if)
goto sherry_cache;
printk("dccp_v4_lookup_listen: sk:%x\n",(__sk_head(head)));
//sk = __dccp_v4_lookup_listen(head, daddr, ntohs(dport), dif);
}
if (sk) {
sherry_cache:
sock_hold(sk);
}
read_unlock(&dccp_lhash_lock);
return (sk);
}
Best regards,
Zhikui Chen
In stuttgart university.
next reply other threads:[~2004-08-20 17:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-20 17:17 Zhikui Chen [this message]
2004-08-20 23:32 ` An issue on one network development Arnaldo Carvalho de Melo
2004-08-20 23:35 ` Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=41263245.8050305@rus.uni-stuttgart.de \
--to=zhikui.chen@rus.uni-stuttgart.de \
--cc=majordomo@oss.sgi.com \
--cc=netdev@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.