All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wang Weidong <wangweidong1@huawei.com>
To: Neil Horman <nhorman@tuxdriver.com>
Cc: Vlad Yasevich <vyasevich@gmail.com>,
	David Miller <davem@davemloft.net>,
	netdev@vger.kernel.org, linux-sctp@vger.kernel.org
Subject: Re: [PATCH v2] sctp: loading sctp when load sctp_probe
Date: Mon, 16 Dec 2013 02:47:00 +0000	[thread overview]
Message-ID: <52AE69A4.7090806@huawei.com> (raw)
In-Reply-To: <20131213122605.GA23384@hmsreliant.think-freely.org>

On 2013/12/13 20:26, Neil Horman wrote:
> On Fri, Dec 13, 2013 at 11:00:10AM +0800, Wang Weidong wrote:
>> when I modprobe sctp_probe, it failed with "FATAL: ". I found that
>> sctp should load before sctp_probe register jprobe. So I add a
>> sctp_setup_jprobe for loading 'sctp' when first failed to register
>> jprobe, just do this similar to dccp_probe.
>>
>> v2: add MODULE_SOFTDEP and check of request_module, as suggested by Neil
>>
>> Signed-off-by: Wang Weidong <wangweidong1@huawei.com>
>> ---
>>  net/sctp/probe.c | 17 ++++++++++++++++-
>>  1 file changed, 16 insertions(+), 1 deletion(-)
>>
>> diff --git a/net/sctp/probe.c b/net/sctp/probe.c
>> index 53c452e..5e68b94 100644
>> --- a/net/sctp/probe.c
>> +++ b/net/sctp/probe.c
>> @@ -38,6 +38,7 @@
>>  #include <net/sctp/sctp.h>
>>  #include <net/sctp/sm.h>
>>  
>> +MODULE_SOFTDEP("pre: sctp");
>>  MODULE_AUTHOR("Wei Yongjun <yjwei@cn.fujitsu.com>");
>>  MODULE_DESCRIPTION("SCTP snooper");
>>  MODULE_LICENSE("GPL");
>> @@ -182,6 +183,20 @@ static struct jprobe sctp_recv_probe = {
>>  	.entry	= jsctp_sf_eat_sack,
>>  };
>>  
>> +static __init int sctp_setup_jprobe(void)
>> +{
>> +	int ret = register_jprobe(&sctp_recv_probe);
>> +
>> +	if (ret) {
>> +		if (request_module("sctp"))
>> +			goto out;
>> +		ret = register_jprobe(&sctp_recv_probe);
>> +	}
>> +
>> +out:
>> +	return ret;
>> +}
>> +
>>  static __init int sctpprobe_init(void)
>>  {
>>  	int ret = -ENOMEM;
>> @@ -202,7 +217,7 @@ static __init int sctpprobe_init(void)
>>  			 &sctpprobe_fops))
>>  		goto free_kfifo;
>>  
>> -	ret = register_jprobe(&sctp_recv_probe);
>> +	ret = sctp_setup_jprobe();
> You don't need to create your own function for this, you can collapse it down to
> a call to try_then_request_module(regitser_jprobe(...), "sctp");
> Neil
> 
Hi Neil,

I try to use try_then_request_module(!regitser_jprobe(...), "sctp"); I found that if
I used this, I couldn't get the ture value which returned by register_jprobe(). Is the
returned value not important? The problem("if sctp.ko doesn't exist") you had pointed out
is exist as well.

Regards.
Wang
> 
>>  	if (ret)
>>  		goto remove_proc;
>>  
> 
> .
> 



WARNING: multiple messages have this Message-ID (diff)
From: Wang Weidong <wangweidong1@huawei.com>
To: Neil Horman <nhorman@tuxdriver.com>
Cc: Vlad Yasevich <vyasevich@gmail.com>,
	David Miller <davem@davemloft.net>, <netdev@vger.kernel.org>,
	<linux-sctp@vger.kernel.org>
Subject: Re: [PATCH v2] sctp: loading sctp when load sctp_probe
Date: Mon, 16 Dec 2013 10:47:00 +0800	[thread overview]
Message-ID: <52AE69A4.7090806@huawei.com> (raw)
In-Reply-To: <20131213122605.GA23384@hmsreliant.think-freely.org>

On 2013/12/13 20:26, Neil Horman wrote:
> On Fri, Dec 13, 2013 at 11:00:10AM +0800, Wang Weidong wrote:
>> when I modprobe sctp_probe, it failed with "FATAL: ". I found that
>> sctp should load before sctp_probe register jprobe. So I add a
>> sctp_setup_jprobe for loading 'sctp' when first failed to register
>> jprobe, just do this similar to dccp_probe.
>>
>> v2: add MODULE_SOFTDEP and check of request_module, as suggested by Neil
>>
>> Signed-off-by: Wang Weidong <wangweidong1@huawei.com>
>> ---
>>  net/sctp/probe.c | 17 ++++++++++++++++-
>>  1 file changed, 16 insertions(+), 1 deletion(-)
>>
>> diff --git a/net/sctp/probe.c b/net/sctp/probe.c
>> index 53c452e..5e68b94 100644
>> --- a/net/sctp/probe.c
>> +++ b/net/sctp/probe.c
>> @@ -38,6 +38,7 @@
>>  #include <net/sctp/sctp.h>
>>  #include <net/sctp/sm.h>
>>  
>> +MODULE_SOFTDEP("pre: sctp");
>>  MODULE_AUTHOR("Wei Yongjun <yjwei@cn.fujitsu.com>");
>>  MODULE_DESCRIPTION("SCTP snooper");
>>  MODULE_LICENSE("GPL");
>> @@ -182,6 +183,20 @@ static struct jprobe sctp_recv_probe = {
>>  	.entry	= jsctp_sf_eat_sack,
>>  };
>>  
>> +static __init int sctp_setup_jprobe(void)
>> +{
>> +	int ret = register_jprobe(&sctp_recv_probe);
>> +
>> +	if (ret) {
>> +		if (request_module("sctp"))
>> +			goto out;
>> +		ret = register_jprobe(&sctp_recv_probe);
>> +	}
>> +
>> +out:
>> +	return ret;
>> +}
>> +
>>  static __init int sctpprobe_init(void)
>>  {
>>  	int ret = -ENOMEM;
>> @@ -202,7 +217,7 @@ static __init int sctpprobe_init(void)
>>  			 &sctpprobe_fops))
>>  		goto free_kfifo;
>>  
>> -	ret = register_jprobe(&sctp_recv_probe);
>> +	ret = sctp_setup_jprobe();
> You don't need to create your own function for this, you can collapse it down to
> a call to try_then_request_module(regitser_jprobe(...), "sctp");
> Neil
> 
Hi Neil,

I try to use try_then_request_module(!regitser_jprobe(...), "sctp"); I found that if
I used this, I couldn't get the ture value which returned by register_jprobe(). Is the
returned value not important? The problem("if sctp.ko doesn't exist") you had pointed out
is exist as well.

Regards.
Wang
> 
>>  	if (ret)
>>  		goto remove_proc;
>>  
> 
> .
> 

  parent reply	other threads:[~2013-12-16  2:47 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-13  3:00 [PATCH v2] sctp: loading sctp when load sctp_probe Wang Weidong
2013-12-13  3:00 ` Wang Weidong
2013-12-13 12:26 ` Neil Horman
2013-12-13 12:26   ` Neil Horman
2013-12-13 14:41   ` Wang Weidong
2013-12-13 14:41     ` Wang Weidong
2013-12-16  2:47   ` Wang Weidong [this message]
2013-12-16  2:47     ` Wang Weidong
2013-12-16 13:48     ` Neil Horman
2013-12-16 13:48       ` Neil Horman
2013-12-16 14:14       ` Wang Weidong
2013-12-16 14:14         ` Wang Weidong
2013-12-16 14:32         ` Neil Horman
2013-12-16 14:32           ` Neil Horman
2013-12-16 14:49           ` Wang Weidong
2013-12-16 14:49             ` Wang Weidong
2013-12-16 15:04             ` Neil Horman
2013-12-16 15:04               ` Neil Horman
2013-12-17  1:11 ` David Miller
2013-12-17  1:11   ` David Miller

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=52AE69A4.7090806@huawei.com \
    --to=wangweidong1@huawei.com \
    --cc=davem@davemloft.net \
    --cc=linux-sctp@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nhorman@tuxdriver.com \
    --cc=vyasevich@gmail.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.