All of lore.kernel.org
 help / color / mirror / Atom feed
* [BUG-FIX][PATCH 0/2]: recent dccp fixes
@ 2010-02-01  6:18   ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01  6:18 UTC (permalink / raw)
  To: davem; +Cc: dccp, netdev

In January there were two dccp commits introducing bugs. Having
been guilty of ack-ing them, please find below patches to fix
them.

Patch #1: fixes a bug resulting from truncating cache name length.
Patch #2: reverts a commit which introduced a module-loading bug.

This being bugs, would you please consider this for stable too.

The test-tree also has been fixed accordingly,
http://eden-feed.erg.abdn.ac.uk/cgi-bin/gitweb.cgi?p=dccp_exp.git;a=shortlog;h=ready    

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [BUG-FIX][PATCH 0/2]: recent dccp fixes
@ 2010-02-01  6:18   ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01  6:18 UTC (permalink / raw)
  To: dccp

In January there were two dccp commits introducing bugs. Having
been guilty of ack-ing them, please find below patches to fix
them.

Patch #1: fixes a bug resulting from truncating cache name length.
Patch #2: reverts a commit which introduced a module-loading bug.

This being bugs, would you please consider this for stable too.

The test-tree also has been fixed accordingly,
http://eden-feed.erg.abdn.ac.uk/cgi-bin/gitweb.cgi?p‹cp_exp.git;a=shortlog;h=ready    
--
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [PATCH 01/86] dccp: fix bug in cache allocation
@ 2010-02-01  6:18     ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01  6:18 UTC (permalink / raw)
  To: davem; +Cc: dccp, netdev, Gerrit Renker

This fixes a bug introduced in commit de4ef86cfce60d2250111f34f8a084e769f23b16
("dccp: fix dccp rmmod when kernel configured to use slub", 17 Jan): the
vsnprintf used sizeof(slab_name_fmt), which became truncated to 4 bytes, since
slab_name_fmt is now a 4-byte pointer and no longer a 32-character array.

This lead to error messages such as
 FATAL: Error inserting dccp: No buffer space available

 >> kernel: [ 1456.341501] kmem_cache_create: duplicate cache cci
generated due to the truncation after the 3rrdc character.

Fixed for the moment by introducing a symbolic constant. Tested to fix the bug.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
---
 net/dccp/ccid.c |    2 +-
 net/dccp/ccid.h |    8 +++++---
 2 files changed, 6 insertions(+), 4 deletions(-)

--- a/net/dccp/ccid.c
+++ b/net/dccp/ccid.c
@@ -83,7 +83,7 @@ static struct kmem_cache *ccid_kmem_cache_create(int obj_size, char *slab_name_f
 	va_list args;
 
 	va_start(args, fmt);
-	vsnprintf(slab_name_fmt, sizeof(slab_name_fmt), fmt, args);
+	vsnprintf(slab_name_fmt, CCID_SLAB_NAME_LENGTH, fmt, args);
 	va_end(args);
 
 	slab = kmem_cache_create(slab_name_fmt, sizeof(struct ccid) + obj_size, 0,
--- a/net/dccp/ccid.h
+++ b/net/dccp/ccid.h
@@ -19,7 +19,9 @@
 #include <linux/list.h>
 #include <linux/module.h>
 
-#define CCID_MAX 255
+/* maximum value for a CCID (RFC 4340, 19.5) */
+#define CCID_MAX		255
+#define CCID_SLAB_NAME_LENGTH	32
 
 struct tcp_info;
 
@@ -49,8 +51,8 @@ struct ccid_operations {
 	const char		*ccid_name;
 	struct kmem_cache	*ccid_hc_rx_slab,
 				*ccid_hc_tx_slab;
-	char			ccid_hc_rx_slab_name[32];
-	char			ccid_hc_tx_slab_name[32];
+	char			ccid_hc_rx_slab_name[CCID_SLAB_NAME_LENGTH];
+	char			ccid_hc_tx_slab_name[CCID_SLAB_NAME_LENGTH];
 	__u32			ccid_hc_rx_obj_size,
 				ccid_hc_tx_obj_size;
 	/* Interface Routines */

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [PATCH 01/86] dccp: fix bug in cache allocation
@ 2010-02-01  6:18     ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01  6:18 UTC (permalink / raw)
  To: dccp

This fixes a bug introduced in commit de4ef86cfce60d2250111f34f8a084e769f23b16
("dccp: fix dccp rmmod when kernel configured to use slub", 17 Jan): the
vsnprintf used sizeof(slab_name_fmt), which became truncated to 4 bytes, since
slab_name_fmt is now a 4-byte pointer and no longer a 32-character array.

This lead to error messages such as
 FATAL: Error inserting dccp: No buffer space available

 >> kernel: [ 1456.341501] kmem_cache_create: duplicate cache cci
generated due to the truncation after the 3rrdc character.

Fixed for the moment by introducing a symbolic constant. Tested to fix the bug.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
---
 net/dccp/ccid.c |    2 +-
 net/dccp/ccid.h |    8 +++++---
 2 files changed, 6 insertions(+), 4 deletions(-)

--- a/net/dccp/ccid.c
+++ b/net/dccp/ccid.c
@@ -83,7 +83,7 @@ static struct kmem_cache *ccid_kmem_cache_create(int obj_size, char *slab_name_f
 	va_list args;
 
 	va_start(args, fmt);
-	vsnprintf(slab_name_fmt, sizeof(slab_name_fmt), fmt, args);
+	vsnprintf(slab_name_fmt, CCID_SLAB_NAME_LENGTH, fmt, args);
 	va_end(args);
 
 	slab = kmem_cache_create(slab_name_fmt, sizeof(struct ccid) + obj_size, 0,
--- a/net/dccp/ccid.h
+++ b/net/dccp/ccid.h
@@ -19,7 +19,9 @@
 #include <linux/list.h>
 #include <linux/module.h>
 
-#define CCID_MAX 255
+/* maximum value for a CCID (RFC 4340, 19.5) */
+#define CCID_MAX		255
+#define CCID_SLAB_NAME_LENGTH	32
 
 struct tcp_info;
 
@@ -49,8 +51,8 @@ struct ccid_operations {
 	const char		*ccid_name;
 	struct kmem_cache	*ccid_hc_rx_slab,
 				*ccid_hc_tx_slab;
-	char			ccid_hc_rx_slab_name[32];
-	char			ccid_hc_tx_slab_name[32];
+	char			ccid_hc_rx_slab_name[CCID_SLAB_NAME_LENGTH];
+	char			ccid_hc_tx_slab_name[CCID_SLAB_NAME_LENGTH];
 	__u32			ccid_hc_rx_obj_size,
 				ccid_hc_tx_obj_size;
 	/* Interface Routines */

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [PATCH 02/86] dccp: revert buggy auto-loading of dccp module
@ 2010-02-01  6:18       ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01  6:18 UTC (permalink / raw)
  To: davem; +Cc: dccp, netdev, Gerrit Renker

This reverts commit (38ff3e6bb987ec583268da8eb22628293095d43b) ("dccp_probe:
Fix module load dependencies between dccp and dccp_probe", from 15 Jan). Not
only does it not work:

% modprobe -v dccp_probe
kernel: [ 1431.442912] sys_init_module: 'dccp_probe'->init suspiciously \
 		      returned 1, it should follow 0/-E convention
kernel: [ 1431.442915] sys_init_module: loading module anyway...


... but it also causes a crash:

% rmmod dccp_probe
kernel: [ 1777.305846] kernel BUG at /usr/src/davem-2.6/mm/slab.c:521!
kernel: [ 1777.305852] invalid opcode: 0000 [#1] SMP
kernel: [ 1777.305861] last sysfs file: /sys/class/power_supply/BAT0/energy_full
kernel: [ 1777.305867] Modules linked in: dccp_probe(-) iwl3945 iwlcore [last unloaded: dccp]
kernel: [ 1777.305883]
kernel: [ 1777.305891] Pid: 12912, comm: rmmod Tainted: G  R        2.6.33-rc5 #6 2008URG/2008URG
kernel: [ 1777.305899] EIP: 0060:[<c01d5e43>] EFLAGS: 00010046 CPU: 1
kernel: [ 1777.305910] EIP is at kfree+0x73/0x150
kernel: [ 1777.305916] EAX: c1678c00 EBX: 00000000 ECX: c01d5e15 EDX: 40080000
kernel: [ 1777.305922] ESI: c015cb9a EDI: 080488a0 EBP: f4ffbf34 ESP: f4ffbf10
kernel: [ 1777.305929]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
kernel: [ 1777.305936] Process rmmod (pid: 12912, ti=f4ffb000 task=f61e8620 task.ti=f4ffb000)

==> After reverting the commit:

% modprobe -v dccp_probe
insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp.ko
insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp_probe.ko

% lsmod
Module                  Size  Used by
dccp_probe              2345  0
dccp                  120233  1 dccp_probe

Previously (during about 4 years of this module's history) there had never
been a problem with the 'silent dependency' that the commit tried to fix:
this dependency is deliberate and required, since dccp_probe performs probing
of dccp connections and hence needs to know about dccp internals.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
---
 net/dccp/probe.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

--- a/net/dccp/probe.c
+++ b/net/dccp/probe.c
@@ -161,8 +161,7 @@ static __init int dccpprobe_init(void)
 	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))
 		goto err0;
 
-	ret = try_then_request_module((register_jprobe(&dccp_send_probe) == 0),
-					"dccp");
+	ret = register_jprobe(&dccp_send_probe);
 	if (ret)
 		goto err1;
 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [PATCH 02/86] dccp: revert buggy auto-loading of dccp module
@ 2010-02-01  6:18       ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01  6:18 UTC (permalink / raw)
  To: dccp

This reverts commit (38ff3e6bb987ec583268da8eb22628293095d43b) ("dccp_probe:
Fix module load dependencies between dccp and dccp_probe", from 15 Jan). Not
only does it not work:

% modprobe -v dccp_probe
kernel: [ 1431.442912] sys_init_module: 'dccp_probe'->init suspiciously \
 		      returned 1, it should follow 0/-E convention
kernel: [ 1431.442915] sys_init_module: loading module anyway...


... but it also causes a crash:

% rmmod dccp_probe
kernel: [ 1777.305846] kernel BUG at /usr/src/davem-2.6/mm/slab.c:521!
kernel: [ 1777.305852] invalid opcode: 0000 [#1] SMP
kernel: [ 1777.305861] last sysfs file: /sys/class/power_supply/BAT0/energy_full
kernel: [ 1777.305867] Modules linked in: dccp_probe(-) iwl3945 iwlcore [last unloaded: dccp]
kernel: [ 1777.305883]
kernel: [ 1777.305891] Pid: 12912, comm: rmmod Tainted: G  R        2.6.33-rc5 #6 2008URG/2008URG
kernel: [ 1777.305899] EIP: 0060:[<c01d5e43>] EFLAGS: 00010046 CPU: 1
kernel: [ 1777.305910] EIP is at kfree+0x73/0x150
kernel: [ 1777.305916] EAX: c1678c00 EBX: 00000000 ECX: c01d5e15 EDX: 40080000
kernel: [ 1777.305922] ESI: c015cb9a EDI: 080488a0 EBP: f4ffbf34 ESP: f4ffbf10
kernel: [ 1777.305929]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
kernel: [ 1777.305936] Process rmmod (pid: 12912, tiôffb000 taskö1e8620 task.tiôffb000)

=> After reverting the commit:

% modprobe -v dccp_probe
insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp.ko
insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp_probe.ko

% lsmod
Module                  Size  Used by
dccp_probe              2345  0
dccp                  120233  1 dccp_probe

Previously (during about 4 years of this module's history) there had never
been a problem with the 'silent dependency' that the commit tried to fix:
this dependency is deliberate and required, since dccp_probe performs probing
of dccp connections and hence needs to know about dccp internals.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
---
 net/dccp/probe.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

--- a/net/dccp/probe.c
+++ b/net/dccp/probe.c
@@ -161,8 +161,7 @@ static __init int dccpprobe_init(void)
 	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))
 		goto err0;
 
-	ret = try_then_request_module((register_jprobe(&dccp_send_probe) = 0),
-					"dccp");
+	ret = register_jprobe(&dccp_send_probe);
 	if (ret)
 		goto err1;
 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [BUG-FIX][PATCH 0/2]: recent dccp fixes
  2010-02-01  6:18   ` Gerrit Renker
@ 2010-02-01  7:17     ` David Miller
  -1 siblings, 0 replies; 34+ messages in thread
From: David Miller @ 2010-02-01  7:17 UTC (permalink / raw)
  To: gerrit; +Cc: dccp, netdev

From: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Date: Mon,  1 Feb 2010 07:18:05 +0100

> In January there were two dccp commits introducing bugs. Having
> been guilty of ack-ing them, please find below patches to fix
> them.
> 
> Patch #1: fixes a bug resulting from truncating cache name length.
> Patch #2: reverts a commit which introduced a module-loading bug.
> 
> This being bugs, would you please consider this for stable too.
> 
> The test-tree also has been fixed accordingly,
> http://eden-feed.erg.abdn.ac.uk/cgi-bin/gitweb.cgi?p=dccp_exp.git;a=shortlog;h=ready    

Gerrit can you at least CC: the author of the changes
you are reverting?

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [BUG-FIX][PATCH 0/2]: recent dccp fixes
@ 2010-02-01  7:17     ` David Miller
  0 siblings, 0 replies; 34+ messages in thread
From: David Miller @ 2010-02-01  7:17 UTC (permalink / raw)
  To: dccp

From: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Date: Mon,  1 Feb 2010 07:18:05 +0100

> In January there were two dccp commits introducing bugs. Having
> been guilty of ack-ing them, please find below patches to fix
> them.
> 
> Patch #1: fixes a bug resulting from truncating cache name length.
> Patch #2: reverts a commit which introduced a module-loading bug.
> 
> This being bugs, would you please consider this for stable too.
> 
> The test-tree also has been fixed accordingly,
> http://eden-feed.erg.abdn.ac.uk/cgi-bin/gitweb.cgi?p‹cp_exp.git;a=shortlog;h=ready    

Gerrit can you at least CC: the author of the changes
you are reverting?
--
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 01/86] dccp: fix bug in cache allocation
  2010-02-01  6:18     ` Gerrit Renker
@ 2010-02-01 11:56       ` Neil Horman
  -1 siblings, 0 replies; 34+ messages in thread
From: Neil Horman @ 2010-02-01 11:56 UTC (permalink / raw)
  To: Gerrit Renker; +Cc: davem, dccp, netdev

On Mon, Feb 01, 2010 at 07:18:06AM +0100, Gerrit Renker wrote:
> This fixes a bug introduced in commit de4ef86cfce60d2250111f34f8a084e769f23b16
> ("dccp: fix dccp rmmod when kernel configured to use slub", 17 Jan): the
> vsnprintf used sizeof(slab_name_fmt), which became truncated to 4 bytes, since
> slab_name_fmt is now a 4-byte pointer and no longer a 32-character array.
> 
> This lead to error messages such as
>  FATAL: Error inserting dccp: No buffer space available
> 
>  >> kernel: [ 1456.341501] kmem_cache_create: duplicate cache cci
> generated due to the truncation after the 3rrdc character.
> 
> Fixed for the moment by introducing a symbolic constant. Tested to fix the bug.
> 
> Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>

These changes make sense, sorry for not seeing that earlier.  Thanks!

Acked-by: Neil Horman <nhorman@tuxdriver.com>

> 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 01/86] dccp: fix bug in cache allocation
@ 2010-02-01 11:56       ` Neil Horman
  0 siblings, 0 replies; 34+ messages in thread
From: Neil Horman @ 2010-02-01 11:56 UTC (permalink / raw)
  To: dccp

On Mon, Feb 01, 2010 at 07:18:06AM +0100, Gerrit Renker wrote:
> This fixes a bug introduced in commit de4ef86cfce60d2250111f34f8a084e769f23b16
> ("dccp: fix dccp rmmod when kernel configured to use slub", 17 Jan): the
> vsnprintf used sizeof(slab_name_fmt), which became truncated to 4 bytes, since
> slab_name_fmt is now a 4-byte pointer and no longer a 32-character array.
> 
> This lead to error messages such as
>  FATAL: Error inserting dccp: No buffer space available
> 
>  >> kernel: [ 1456.341501] kmem_cache_create: duplicate cache cci
> generated due to the truncation after the 3rrdc character.
> 
> Fixed for the moment by introducing a symbolic constant. Tested to fix the bug.
> 
> Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>

These changes make sense, sorry for not seeing that earlier.  Thanks!

Acked-by: Neil Horman <nhorman@tuxdriver.com>

> 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 01/86] dccp: fix bug in cache allocation
  2010-02-01  6:18     ` Gerrit Renker
@ 2010-02-01 12:08         ` Gerrit Renker
  -1 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01 12:08 UTC (permalink / raw)
  To: Neil Horman; +Cc: davem, dccp, netdev

| These changes make sense, sorry for not seeing that earlier.  Thanks!
| Acked-by: Neil Horman <nhorman@tuxdriver.com>  
Thanks a lot for the quick response, I was just in the middle of composing
a message to re-send the patches (the count '0{1,2}/86' was wrong).

Apologies for forgetting to CC:, thanks for catching this.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 01/86] dccp: fix bug in cache allocation
@ 2010-02-01 12:08         ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01 12:08 UTC (permalink / raw)
  To: dccp

| These changes make sense, sorry for not seeing that earlier.  Thanks!
| Acked-by: Neil Horman <nhorman@tuxdriver.com>  
Thanks a lot for the quick response, I was just in the middle of composing
a message to re-send the patches (the count '0{1,2}/86' was wrong).

Apologies for forgetting to CC:, thanks for catching this.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [BUG-FIX v2][PATCH 0/2]: recent dccp fixes
@ 2010-02-01 12:12           ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01 12:12 UTC (permalink / raw)
  To: davem; +Cc: nhorman, dccp, netdev, --cc

Hi Dave,

as per your request, I am resending this CC:-ed to Neil (who already acked
the first patch), and also adding Arnaldo.

These are two fixes for recent dccp commits which addressed issues, but
introduced bugs which I discovered when rebasing the test tree last week.

Patch #1: fixes a bug resulting from truncating cache name length.
Patch #2: reverts a commit which introduced a module-loading bug.

This being bugs, would you please consider this for stable too.

The test-tree also has been fixed accordingly,
http://eden-feed.erg.abdn.ac.uk/cgi-bin/gitweb.cgi?p=dccp_exp.git;a=shortlog;h=ready    

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [BUG-FIX v2][PATCH 0/2]: recent dccp fixes
@ 2010-02-01 12:12           ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01 12:12 UTC (permalink / raw)
  To: dccp

Hi Dave,

as per your request, I am resending this CC:-ed to Neil (who already acked
the first patch), and also adding Arnaldo.

These are two fixes for recent dccp commits which addressed issues, but
introduced bugs which I discovered when rebasing the test tree last week.

Patch #1: fixes a bug resulting from truncating cache name length.
Patch #2: reverts a commit which introduced a module-loading bug.

This being bugs, would you please consider this for stable too.

The test-tree also has been fixed accordingly,
http://eden-feed.erg.abdn.ac.uk/cgi-bin/gitweb.cgi?p‹cp_exp.git;a=shortlog;h=ready    
--
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [Bug-Fix][PATCH 1/2] dccp: fix bug in cache allocation
@ 2010-02-01 12:12             ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01 12:12 UTC (permalink / raw)
  To: davem; +Cc: nhorman, dccp, netdev, --cc, Gerrit Renker

This fixes a bug introduced in commit de4ef86cfce60d2250111f34f8a084e769f23b16
("dccp: fix dccp rmmod when kernel configured to use slub", 17 Jan): the
vsnprintf used sizeof(slab_name_fmt), which became truncated to 4 bytes, since
slab_name_fmt is now a 4-byte pointer and no longer a 32-character array.

This lead to error messages such as
 FATAL: Error inserting dccp: No buffer space available

 >> kernel: [ 1456.341501] kmem_cache_create: duplicate cache cci
generated due to the truncation after the 3rd character.

Fixed for the moment by introducing a symbolic constant. Tested to fix the bug.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Neil Horman <nhorman@tuxdriver.com> 
---
 net/dccp/ccid.c |    2 +-
 net/dccp/ccid.h |    8 +++++---
 2 files changed, 6 insertions(+), 4 deletions(-)

--- a/net/dccp/ccid.c
+++ b/net/dccp/ccid.c
@@ -83,7 +83,7 @@ static struct kmem_cache *ccid_kmem_cache_create(int obj_size, char *slab_name_f
 	va_list args;
 
 	va_start(args, fmt);
-	vsnprintf(slab_name_fmt, sizeof(slab_name_fmt), fmt, args);
+	vsnprintf(slab_name_fmt, CCID_SLAB_NAME_LENGTH, fmt, args);
 	va_end(args);
 
 	slab = kmem_cache_create(slab_name_fmt, sizeof(struct ccid) + obj_size, 0,
--- a/net/dccp/ccid.h
+++ b/net/dccp/ccid.h
@@ -19,7 +19,9 @@
 #include <linux/list.h>
 #include <linux/module.h>
 
-#define CCID_MAX 255
+/* maximum value for a CCID (RFC 4340, 19.5) */
+#define CCID_MAX		255
+#define CCID_SLAB_NAME_LENGTH	32
 
 struct tcp_info;
 
@@ -49,8 +51,8 @@ struct ccid_operations {
 	const char		*ccid_name;
 	struct kmem_cache	*ccid_hc_rx_slab,
 				*ccid_hc_tx_slab;
-	char			ccid_hc_rx_slab_name[32];
-	char			ccid_hc_tx_slab_name[32];
+	char			ccid_hc_rx_slab_name[CCID_SLAB_NAME_LENGTH];
+	char			ccid_hc_tx_slab_name[CCID_SLAB_NAME_LENGTH];
 	__u32			ccid_hc_rx_obj_size,
 				ccid_hc_tx_obj_size;
 	/* Interface Routines */

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [Bug-Fix][PATCH 1/2] dccp: fix bug in cache allocation
@ 2010-02-01 12:12             ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01 12:12 UTC (permalink / raw)
  To: dccp

This fixes a bug introduced in commit de4ef86cfce60d2250111f34f8a084e769f23b16
("dccp: fix dccp rmmod when kernel configured to use slub", 17 Jan): the
vsnprintf used sizeof(slab_name_fmt), which became truncated to 4 bytes, since
slab_name_fmt is now a 4-byte pointer and no longer a 32-character array.

This lead to error messages such as
 FATAL: Error inserting dccp: No buffer space available

 >> kernel: [ 1456.341501] kmem_cache_create: duplicate cache cci
generated due to the truncation after the 3rd character.

Fixed for the moment by introducing a symbolic constant. Tested to fix the bug.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Neil Horman <nhorman@tuxdriver.com> 
---
 net/dccp/ccid.c |    2 +-
 net/dccp/ccid.h |    8 +++++---
 2 files changed, 6 insertions(+), 4 deletions(-)

--- a/net/dccp/ccid.c
+++ b/net/dccp/ccid.c
@@ -83,7 +83,7 @@ static struct kmem_cache *ccid_kmem_cache_create(int obj_size, char *slab_name_f
 	va_list args;
 
 	va_start(args, fmt);
-	vsnprintf(slab_name_fmt, sizeof(slab_name_fmt), fmt, args);
+	vsnprintf(slab_name_fmt, CCID_SLAB_NAME_LENGTH, fmt, args);
 	va_end(args);
 
 	slab = kmem_cache_create(slab_name_fmt, sizeof(struct ccid) + obj_size, 0,
--- a/net/dccp/ccid.h
+++ b/net/dccp/ccid.h
@@ -19,7 +19,9 @@
 #include <linux/list.h>
 #include <linux/module.h>
 
-#define CCID_MAX 255
+/* maximum value for a CCID (RFC 4340, 19.5) */
+#define CCID_MAX		255
+#define CCID_SLAB_NAME_LENGTH	32
 
 struct tcp_info;
 
@@ -49,8 +51,8 @@ struct ccid_operations {
 	const char		*ccid_name;
 	struct kmem_cache	*ccid_hc_rx_slab,
 				*ccid_hc_tx_slab;
-	char			ccid_hc_rx_slab_name[32];
-	char			ccid_hc_tx_slab_name[32];
+	char			ccid_hc_rx_slab_name[CCID_SLAB_NAME_LENGTH];
+	char			ccid_hc_tx_slab_name[CCID_SLAB_NAME_LENGTH];
 	__u32			ccid_hc_rx_obj_size,
 				ccid_hc_tx_obj_size;
 	/* Interface Routines */

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [Bug-Fix][PATCH 2/2] dccp: revert buggy auto-loading of dccp module
@ 2010-02-01 12:12               ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01 12:12 UTC (permalink / raw)
  To: davem; +Cc: nhorman, dccp, netdev, --cc, Gerrit Renker

This reverts commit (38ff3e6bb987ec583268da8eb22628293095d43b) ("dccp_probe:
Fix module load dependencies between dccp and dccp_probe", from 15 Jan). Not
only does it not work:

% modprobe -v dccp_probe
kernel: [ 1431.442912] sys_init_module: 'dccp_probe'->init suspiciously \
 		      returned 1, it should follow 0/-E convention
kernel: [ 1431.442915] sys_init_module: loading module anyway...


... but it also causes a crash:

% rmmod dccp_probe
kernel: [ 1777.305846] kernel BUG at /usr/src/davem-2.6/mm/slab.c:521!
kernel: [ 1777.305852] invalid opcode: 0000 [#1] SMP
kernel: [ 1777.305861] last sysfs file: /sys/class/power_supply/BAT0/energy_full
kernel: [ 1777.305867] Modules linked in: dccp_probe(-) iwl3945 iwlcore [last unloaded: dccp]
kernel: [ 1777.305883]
kernel: [ 1777.305891] Pid: 12912, comm: rmmod Tainted: G  R        2.6.33-rc5 #6 2008URG/2008URG
kernel: [ 1777.305899] EIP: 0060:[<c01d5e43>] EFLAGS: 00010046 CPU: 1
kernel: [ 1777.305910] EIP is at kfree+0x73/0x150
kernel: [ 1777.305916] EAX: c1678c00 EBX: 00000000 ECX: c01d5e15 EDX: 40080000
kernel: [ 1777.305922] ESI: c015cb9a EDI: 080488a0 EBP: f4ffbf34 ESP: f4ffbf10
kernel: [ 1777.305929]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
kernel: [ 1777.305936] Process rmmod (pid: 12912, ti=f4ffb000 task=f61e8620 task.ti=f4ffb000)

==> After reverting the commit:

% modprobe -v dccp_probe
insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp.ko
insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp_probe.ko

% lsmod
Module                  Size  Used by
dccp_probe              2345  0
dccp                  120233  1 dccp_probe

Previously (during about 4 years of this module's history) there had never
been a problem with the 'silent dependency' that the commit tried to fix:
this dependency is deliberate and required, since dccp_probe performs probing
of dccp connections and hence needs to know about dccp internals.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
---
 net/dccp/probe.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

--- a/net/dccp/probe.c
+++ b/net/dccp/probe.c
@@ -161,8 +161,7 @@ static __init int dccpprobe_init(void)
 	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))
 		goto err0;
 
-	ret = try_then_request_module((register_jprobe(&dccp_send_probe) == 0),
-					"dccp");
+	ret = register_jprobe(&dccp_send_probe);
 	if (ret)
 		goto err1;
 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [Bug-Fix][PATCH 2/2] dccp: revert buggy auto-loading of dccp module
@ 2010-02-01 12:12               ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-01 12:12 UTC (permalink / raw)
  To: dccp

This reverts commit (38ff3e6bb987ec583268da8eb22628293095d43b) ("dccp_probe:
Fix module load dependencies between dccp and dccp_probe", from 15 Jan). Not
only does it not work:

% modprobe -v dccp_probe
kernel: [ 1431.442912] sys_init_module: 'dccp_probe'->init suspiciously \
 		      returned 1, it should follow 0/-E convention
kernel: [ 1431.442915] sys_init_module: loading module anyway...


... but it also causes a crash:

% rmmod dccp_probe
kernel: [ 1777.305846] kernel BUG at /usr/src/davem-2.6/mm/slab.c:521!
kernel: [ 1777.305852] invalid opcode: 0000 [#1] SMP
kernel: [ 1777.305861] last sysfs file: /sys/class/power_supply/BAT0/energy_full
kernel: [ 1777.305867] Modules linked in: dccp_probe(-) iwl3945 iwlcore [last unloaded: dccp]
kernel: [ 1777.305883]
kernel: [ 1777.305891] Pid: 12912, comm: rmmod Tainted: G  R        2.6.33-rc5 #6 2008URG/2008URG
kernel: [ 1777.305899] EIP: 0060:[<c01d5e43>] EFLAGS: 00010046 CPU: 1
kernel: [ 1777.305910] EIP is at kfree+0x73/0x150
kernel: [ 1777.305916] EAX: c1678c00 EBX: 00000000 ECX: c01d5e15 EDX: 40080000
kernel: [ 1777.305922] ESI: c015cb9a EDI: 080488a0 EBP: f4ffbf34 ESP: f4ffbf10
kernel: [ 1777.305929]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
kernel: [ 1777.305936] Process rmmod (pid: 12912, tiôffb000 taskö1e8620 task.tiôffb000)

=> After reverting the commit:

% modprobe -v dccp_probe
insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp.ko
insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp_probe.ko

% lsmod
Module                  Size  Used by
dccp_probe              2345  0
dccp                  120233  1 dccp_probe

Previously (during about 4 years of this module's history) there had never
been a problem with the 'silent dependency' that the commit tried to fix:
this dependency is deliberate and required, since dccp_probe performs probing
of dccp connections and hence needs to know about dccp internals.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
---
 net/dccp/probe.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

--- a/net/dccp/probe.c
+++ b/net/dccp/probe.c
@@ -161,8 +161,7 @@ static __init int dccpprobe_init(void)
 	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))
 		goto err0;
 
-	ret = try_then_request_module((register_jprobe(&dccp_send_probe) = 0),
-					"dccp");
+	ret = register_jprobe(&dccp_send_probe);
 	if (ret)
 		goto err1;
 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 02/86] dccp: revert buggy auto-loading of dccp module
  2010-02-01  6:18       ` Gerrit Renker
@ 2010-02-01 12:21         ` Neil Horman
  -1 siblings, 0 replies; 34+ messages in thread
From: Neil Horman @ 2010-02-01 12:21 UTC (permalink / raw)
  To: Gerrit Renker; +Cc: davem, dccp, netdev

On Mon, Feb 01, 2010 at 07:18:07AM +0100, Gerrit Renker wrote:
> This reverts commit (38ff3e6bb987ec583268da8eb22628293095d43b) ("dccp_probe:
> Fix module load dependencies between dccp and dccp_probe", from 15 Jan). Not
> only does it not work:
> 
> % modprobe -v dccp_probe
> kernel: [ 1431.442912] sys_init_module: 'dccp_probe'->init suspiciously \
>  		      returned 1, it should follow 0/-E convention
> kernel: [ 1431.442915] sys_init_module: loading module anyway...
> 
> 
> ... but it also causes a crash:
> 
> % rmmod dccp_probe
> kernel: [ 1777.305846] kernel BUG at /usr/src/davem-2.6/mm/slab.c:521!
> kernel: [ 1777.305852] invalid opcode: 0000 [#1] SMP
> kernel: [ 1777.305861] last sysfs file: /sys/class/power_supply/BAT0/energy_full
> kernel: [ 1777.305867] Modules linked in: dccp_probe(-) iwl3945 iwlcore [last unloaded: dccp]
> kernel: [ 1777.305883]
> kernel: [ 1777.305891] Pid: 12912, comm: rmmod Tainted: G  R        2.6.33-rc5 #6 2008URG/2008URG
> kernel: [ 1777.305899] EIP: 0060:[<c01d5e43>] EFLAGS: 00010046 CPU: 1
> kernel: [ 1777.305910] EIP is at kfree+0x73/0x150
> kernel: [ 1777.305916] EAX: c1678c00 EBX: 00000000 ECX: c01d5e15 EDX: 40080000
> kernel: [ 1777.305922] ESI: c015cb9a EDI: 080488a0 EBP: f4ffbf34 ESP: f4ffbf10
> kernel: [ 1777.305929]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
> kernel: [ 1777.305936] Process rmmod (pid: 12912, ti=f4ffb000 task=f61e8620 task.ti=f4ffb000)
> 
> ==> After reverting the commit:
> 
> % modprobe -v dccp_probe
> insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp.ko
> insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp_probe.ko
> 
> % lsmod
> Module                  Size  Used by
> dccp_probe              2345  0
> dccp                  120233  1 dccp_probe
> 
> Previously (during about 4 years of this module's history) there had never
> been a problem with the 'silent dependency' that the commit tried to fix:
> this dependency is deliberate and required, since dccp_probe performs probing
> of dccp connections and hence needs to know about dccp internals.
> 
> Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>

This doesn't make any sense.  Gerrit, you don't understand what the patch was
trying to do.  There is a silent dependency, in that this module requires the
dccp module to be loaded, but the reference to the dccp_send_probe symbol isn't
one that depmod can see.  If you don't load dccp first, dccp_probe fails, why
bother to allow that when try_then_request_module can avoid it?

The problem here is the construction of the first argument,
try_then_request_module should only return valid return codes from the first
argument, and my first argument is malformed.  register_jprobe returns zero on
success, so I need to check its return in the call for 0, in case we need to
trigger the request_module action, but in so doing ret gets the value of
(register_jprobe(&dccp_send_probe) == 0), which will always be 0 or 1.  What we
actually need to do is assign the result of register_jprobe to ret, without the
side effect of the comparison.  I've not tested it, but this should do it,
without re-breaking the silent dependency.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>


 
 probe.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)


diff --git a/net/dccp/probe.c b/net/dccp/probe.c
index bace1d8..a8f5fdf 100644
--- a/net/dccp/probe.c
+++ b/net/dccp/probe.c
@@ -161,7 +161,8 @@ static __init int dccpprobe_init(void)
 	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))
 		goto err0;
 
-	ret = try_then_request_module((register_jprobe(&dccp_send_probe) == 0),
+	try_then_request_module(
+		((ret = register_jprobe(&dccp_send_probe)) == 0),
 					"dccp");
 	if (ret)
 		goto err1;

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: [PATCH 02/86] dccp: revert buggy auto-loading of dccp module
@ 2010-02-01 12:21         ` Neil Horman
  0 siblings, 0 replies; 34+ messages in thread
From: Neil Horman @ 2010-02-01 12:21 UTC (permalink / raw)
  To: dccp

On Mon, Feb 01, 2010 at 07:18:07AM +0100, Gerrit Renker wrote:
> This reverts commit (38ff3e6bb987ec583268da8eb22628293095d43b) ("dccp_probe:
> Fix module load dependencies between dccp and dccp_probe", from 15 Jan). Not
> only does it not work:
> 
> % modprobe -v dccp_probe
> kernel: [ 1431.442912] sys_init_module: 'dccp_probe'->init suspiciously \
>  		      returned 1, it should follow 0/-E convention
> kernel: [ 1431.442915] sys_init_module: loading module anyway...
> 
> 
> ... but it also causes a crash:
> 
> % rmmod dccp_probe
> kernel: [ 1777.305846] kernel BUG at /usr/src/davem-2.6/mm/slab.c:521!
> kernel: [ 1777.305852] invalid opcode: 0000 [#1] SMP
> kernel: [ 1777.305861] last sysfs file: /sys/class/power_supply/BAT0/energy_full
> kernel: [ 1777.305867] Modules linked in: dccp_probe(-) iwl3945 iwlcore [last unloaded: dccp]
> kernel: [ 1777.305883]
> kernel: [ 1777.305891] Pid: 12912, comm: rmmod Tainted: G  R        2.6.33-rc5 #6 2008URG/2008URG
> kernel: [ 1777.305899] EIP: 0060:[<c01d5e43>] EFLAGS: 00010046 CPU: 1
> kernel: [ 1777.305910] EIP is at kfree+0x73/0x150
> kernel: [ 1777.305916] EAX: c1678c00 EBX: 00000000 ECX: c01d5e15 EDX: 40080000
> kernel: [ 1777.305922] ESI: c015cb9a EDI: 080488a0 EBP: f4ffbf34 ESP: f4ffbf10
> kernel: [ 1777.305929]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
> kernel: [ 1777.305936] Process rmmod (pid: 12912, tiôffb000 taskö1e8620 task.tiôffb000)
> 
> => After reverting the commit:
> 
> % modprobe -v dccp_probe
> insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp.ko
> insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp_probe.ko
> 
> % lsmod
> Module                  Size  Used by
> dccp_probe              2345  0
> dccp                  120233  1 dccp_probe
> 
> Previously (during about 4 years of this module's history) there had never
> been a problem with the 'silent dependency' that the commit tried to fix:
> this dependency is deliberate and required, since dccp_probe performs probing
> of dccp connections and hence needs to know about dccp internals.
> 
> Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>

This doesn't make any sense.  Gerrit, you don't understand what the patch was
trying to do.  There is a silent dependency, in that this module requires the
dccp module to be loaded, but the reference to the dccp_send_probe symbol isn't
one that depmod can see.  If you don't load dccp first, dccp_probe fails, why
bother to allow that when try_then_request_module can avoid it?

The problem here is the construction of the first argument,
try_then_request_module should only return valid return codes from the first
argument, and my first argument is malformed.  register_jprobe returns zero on
success, so I need to check its return in the call for 0, in case we need to
trigger the request_module action, but in so doing ret gets the value of
(register_jprobe(&dccp_send_probe) = 0), which will always be 0 or 1.  What we
actually need to do is assign the result of register_jprobe to ret, without the
side effect of the comparison.  I've not tested it, but this should do it,
without re-breaking the silent dependency.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>


 
 probe.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)


diff --git a/net/dccp/probe.c b/net/dccp/probe.c
index bace1d8..a8f5fdf 100644
--- a/net/dccp/probe.c
+++ b/net/dccp/probe.c
@@ -161,7 +161,8 @@ static __init int dccpprobe_init(void)
 	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))
 		goto err0;
 
-	ret = try_then_request_module((register_jprobe(&dccp_send_probe) = 0),
+	try_then_request_module(
+		((ret = register_jprobe(&dccp_send_probe)) = 0),
 					"dccp");
 	if (ret)
 		goto err1;

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: [PATCH 02/86] dccp: revert buggy auto-loading of dccp module
  2010-02-01  6:18       ` Gerrit Renker
@ 2010-02-01 18:38           ` Neil Horman
  -1 siblings, 0 replies; 34+ messages in thread
From: Neil Horman @ 2010-02-01 18:38 UTC (permalink / raw)
  To: Gerrit Renker; +Cc: davem, dccp, netdev

On Mon, Feb 01, 2010 at 07:21:19AM -0500, Neil Horman wrote:
> On Mon, Feb 01, 2010 at 07:18:07AM +0100, Gerrit Renker wrote:
> > This reverts commit (38ff3e6bb987ec583268da8eb22628293095d43b) ("dccp_probe:
> > Fix module load dependencies between dccp and dccp_probe", from 15 Jan). Not
> > only does it not work:
> > 
> > % modprobe -v dccp_probe
> > kernel: [ 1431.442912] sys_init_module: 'dccp_probe'->init suspiciously \
> >  		      returned 1, it should follow 0/-E convention
> > kernel: [ 1431.442915] sys_init_module: loading module anyway...
> > 
> > 
> > ... but it also causes a crash:
> > 
> > % rmmod dccp_probe
> > kernel: [ 1777.305846] kernel BUG at /usr/src/davem-2.6/mm/slab.c:521!
> > kernel: [ 1777.305852] invalid opcode: 0000 [#1] SMP
> > kernel: [ 1777.305861] last sysfs file: /sys/class/power_supply/BAT0/energy_full
> > kernel: [ 1777.305867] Modules linked in: dccp_probe(-) iwl3945 iwlcore [last unloaded: dccp]
> > kernel: [ 1777.305883]
> > kernel: [ 1777.305891] Pid: 12912, comm: rmmod Tainted: G  R        2.6.33-rc5 #6 2008URG/2008URG
> > kernel: [ 1777.305899] EIP: 0060:[<c01d5e43>] EFLAGS: 00010046 CPU: 1
> > kernel: [ 1777.305910] EIP is at kfree+0x73/0x150
> > kernel: [ 1777.305916] EAX: c1678c00 EBX: 00000000 ECX: c01d5e15 EDX: 40080000
> > kernel: [ 1777.305922] ESI: c015cb9a EDI: 080488a0 EBP: f4ffbf34 ESP: f4ffbf10
> > kernel: [ 1777.305929]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
> > kernel: [ 1777.305936] Process rmmod (pid: 12912, ti=f4ffb000 task=f61e8620 task.ti=f4ffb000)
> > 
> > ==> After reverting the commit:
> > 
> > % modprobe -v dccp_probe
> > insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp.ko
> > insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp_probe.ko
> > 
> > % lsmod
> > Module                  Size  Used by
> > dccp_probe              2345  0
> > dccp                  120233  1 dccp_probe
> > 
> > Previously (during about 4 years of this module's history) there had never
> > been a problem with the 'silent dependency' that the commit tried to fix:
> > this dependency is deliberate and required, since dccp_probe performs probing
> > of dccp connections and hence needs to know about dccp internals.
> > 
> > Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
> 
> This doesn't make any sense.  Gerrit, you don't understand what the patch was
> trying to do.  There is a silent dependency, in that this module requires the
> dccp module to be loaded, but the reference to the dccp_send_probe symbol isn't
> one that depmod can see.  If you don't load dccp first, dccp_probe fails, why
> bother to allow that when try_then_request_module can avoid it?
> 
> The problem here is the construction of the first argument,
> try_then_request_module should only return valid return codes from the first
> argument, and my first argument is malformed.  register_jprobe returns zero on
> success, so I need to check its return in the call for 0, in case we need to
> trigger the request_module action, but in so doing ret gets the value of
> (register_jprobe(&dccp_send_probe) == 0), which will always be 0 or 1.  What we
> actually need to do is assign the result of register_jprobe to ret, without the
> side effect of the comparison.  I've not tested it, but this should do it,
> without re-breaking the silent dependency.
> 
> Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> 
> 
>  
>  probe.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> 
> diff --git a/net/dccp/probe.c b/net/dccp/probe.c
> index bace1d8..a8f5fdf 100644
> --- a/net/dccp/probe.c
> +++ b/net/dccp/probe.c
> @@ -161,7 +161,8 @@ static __init int dccpprobe_init(void)
>  	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))
>  		goto err0;
>  
> -	ret = try_then_request_module((register_jprobe(&dccp_send_probe) == 0),
> +	try_then_request_module(
> +		((ret = register_jprobe(&dccp_send_probe)) == 0),
>  					"dccp");
>  	if (ret)
>  		goto err1;
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
Gerrit, any thoughts here?
Thanks & Regards
Neil


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 02/86] dccp: revert buggy auto-loading of dccp module
@ 2010-02-01 18:38           ` Neil Horman
  0 siblings, 0 replies; 34+ messages in thread
From: Neil Horman @ 2010-02-01 18:38 UTC (permalink / raw)
  To: dccp

On Mon, Feb 01, 2010 at 07:21:19AM -0500, Neil Horman wrote:
> On Mon, Feb 01, 2010 at 07:18:07AM +0100, Gerrit Renker wrote:
> > This reverts commit (38ff3e6bb987ec583268da8eb22628293095d43b) ("dccp_probe:
> > Fix module load dependencies between dccp and dccp_probe", from 15 Jan). Not
> > only does it not work:
> > 
> > % modprobe -v dccp_probe
> > kernel: [ 1431.442912] sys_init_module: 'dccp_probe'->init suspiciously \
> >  		      returned 1, it should follow 0/-E convention
> > kernel: [ 1431.442915] sys_init_module: loading module anyway...
> > 
> > 
> > ... but it also causes a crash:
> > 
> > % rmmod dccp_probe
> > kernel: [ 1777.305846] kernel BUG at /usr/src/davem-2.6/mm/slab.c:521!
> > kernel: [ 1777.305852] invalid opcode: 0000 [#1] SMP
> > kernel: [ 1777.305861] last sysfs file: /sys/class/power_supply/BAT0/energy_full
> > kernel: [ 1777.305867] Modules linked in: dccp_probe(-) iwl3945 iwlcore [last unloaded: dccp]
> > kernel: [ 1777.305883]
> > kernel: [ 1777.305891] Pid: 12912, comm: rmmod Tainted: G  R        2.6.33-rc5 #6 2008URG/2008URG
> > kernel: [ 1777.305899] EIP: 0060:[<c01d5e43>] EFLAGS: 00010046 CPU: 1
> > kernel: [ 1777.305910] EIP is at kfree+0x73/0x150
> > kernel: [ 1777.305916] EAX: c1678c00 EBX: 00000000 ECX: c01d5e15 EDX: 40080000
> > kernel: [ 1777.305922] ESI: c015cb9a EDI: 080488a0 EBP: f4ffbf34 ESP: f4ffbf10
> > kernel: [ 1777.305929]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
> > kernel: [ 1777.305936] Process rmmod (pid: 12912, tiôffb000 taskö1e8620 task.tiôffb000)
> > 
> > => After reverting the commit:
> > 
> > % modprobe -v dccp_probe
> > insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp.ko
> > insmod /lib/modules/2.6.33-rc5/kernel/net/dccp/dccp_probe.ko
> > 
> > % lsmod
> > Module                  Size  Used by
> > dccp_probe              2345  0
> > dccp                  120233  1 dccp_probe
> > 
> > Previously (during about 4 years of this module's history) there had never
> > been a problem with the 'silent dependency' that the commit tried to fix:
> > this dependency is deliberate and required, since dccp_probe performs probing
> > of dccp connections and hence needs to know about dccp internals.
> > 
> > Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
> 
> This doesn't make any sense.  Gerrit, you don't understand what the patch was
> trying to do.  There is a silent dependency, in that this module requires the
> dccp module to be loaded, but the reference to the dccp_send_probe symbol isn't
> one that depmod can see.  If you don't load dccp first, dccp_probe fails, why
> bother to allow that when try_then_request_module can avoid it?
> 
> The problem here is the construction of the first argument,
> try_then_request_module should only return valid return codes from the first
> argument, and my first argument is malformed.  register_jprobe returns zero on
> success, so I need to check its return in the call for 0, in case we need to
> trigger the request_module action, but in so doing ret gets the value of
> (register_jprobe(&dccp_send_probe) = 0), which will always be 0 or 1.  What we
> actually need to do is assign the result of register_jprobe to ret, without the
> side effect of the comparison.  I've not tested it, but this should do it,
> without re-breaking the silent dependency.
> 
> Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> 
> 
>  
>  probe.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> 
> diff --git a/net/dccp/probe.c b/net/dccp/probe.c
> index bace1d8..a8f5fdf 100644
> --- a/net/dccp/probe.c
> +++ b/net/dccp/probe.c
> @@ -161,7 +161,8 @@ static __init int dccpprobe_init(void)
>  	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))
>  		goto err0;
>  
> -	ret = try_then_request_module((register_jprobe(&dccp_send_probe) = 0),
> +	try_then_request_module(
> +		((ret = register_jprobe(&dccp_send_probe)) = 0),
>  					"dccp");
>  	if (ret)
>  		goto err1;
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
Gerrit, any thoughts here?
Thanks & Regards
Neil


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 02/86] dccp: revert buggy auto-loading of dccp module
  2010-02-01  6:18       ` Gerrit Renker
@ 2010-02-02 15:06           ` gerrit
  -1 siblings, 0 replies; 34+ messages in thread
From: gerrit @ 2010-02-02 15:06 UTC (permalink / raw)
  To: Neil Horman; +Cc: Gerrit Renker, davem, dccp, netdev

> --- a/net/dccp/probe.c
> +++ b/net/dccp/probe.c
> @@ -161,7 +161,8 @@ static __init int dccpprobe_init(void)
>  	if (!proc_net_fops_create(&init_net, procname, S_IRUSR,
> &dccpprobe_fops))
>  		goto err0;
>
> -	ret = try_then_request_module((register_jprobe(&dccp_send_probe) == 0),
> +	try_then_request_module(
> +		((ret = register_jprobe(&dccp_send_probe)) == 0),
>  					"dccp");
>  	if (ret)
>  		goto err1;

Apologies for the late response -- delays are sometimes possible due to
day job. The only problem that I had with this patch was that it was
apparently not tested, causing the described problems.


> I've not tested it, but this should do it,
> without re-breaking the silent dependency.

I will test it and get back to you until tomorrow morning (GMT),
if it works I'll also push it out in the test tree.

Thanks a lot for getting back and devising a different route.



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 02/86] dccp: revert buggy auto-loading of dccp module
@ 2010-02-02 15:06           ` gerrit
  0 siblings, 0 replies; 34+ messages in thread
From: gerrit @ 2010-02-02 15:06 UTC (permalink / raw)
  To: dccp

> --- a/net/dccp/probe.c
> +++ b/net/dccp/probe.c
> @@ -161,7 +161,8 @@ static __init int dccpprobe_init(void)
>  	if (!proc_net_fops_create(&init_net, procname, S_IRUSR,
> &dccpprobe_fops))
>  		goto err0;
>
> -	ret = try_then_request_module((register_jprobe(&dccp_send_probe) = 0),
> +	try_then_request_module(
> +		((ret = register_jprobe(&dccp_send_probe)) = 0),
>  					"dccp");
>  	if (ret)
>  		goto err1;

Apologies for the late response -- delays are sometimes possible due to
day job. The only problem that I had with this patch was that it was
apparently not tested, causing the described problems.


> I've not tested it, but this should do it,
> without re-breaking the silent dependency.

I will test it and get back to you until tomorrow morning (GMT),
if it works I'll also push it out in the test tree.

Thanks a lot for getting back and devising a different route.



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 02/86] dccp: revert buggy auto-loading of dccp module
  2010-02-01  6:18       ` Gerrit Renker
@ 2010-02-02 15:39             ` Neil Horman
  -1 siblings, 0 replies; 34+ messages in thread
From: Neil Horman @ 2010-02-02 15:39 UTC (permalink / raw)
  To: gerrit; +Cc: davem, dccp, netdev

On Tue, Feb 02, 2010 at 03:06:15PM -0000, gerrit@erg.abdn.ac.uk wrote:
> > --- a/net/dccp/probe.c
> > +++ b/net/dccp/probe.c
> > @@ -161,7 +161,8 @@ static __init int dccpprobe_init(void)
> >  	if (!proc_net_fops_create(&init_net, procname, S_IRUSR,
> > &dccpprobe_fops))
> >  		goto err0;
> >
> > -	ret = try_then_request_module((register_jprobe(&dccp_send_probe) == 0),
> > +	try_then_request_module(
> > +		((ret = register_jprobe(&dccp_send_probe)) == 0),
> >  					"dccp");
> >  	if (ret)
> >  		goto err1;
> 
> Apologies for the late response -- delays are sometimes possible due to
> day job. The only problem that I had with this patch was that it was
> apparently not tested, causing the described problems.
> 
> 
> > I've not tested it, but this should do it,
> > without re-breaking the silent dependency.
> 
> I will test it and get back to you until tomorrow morning (GMT),
> if it works I'll also push it out in the test tree.
> 
> Thanks a lot for getting back and devising a different route.
> 
Thanks, and apologies for being brusque.  I just didn't want to fix what is
clearly a problem in what you describe by rebreaking a previously seen problem.
I expect this should work just fine.  Let me know if it doesn't and I'll
resurrect my test bed here and take a look
Neil

> 
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 02/86] dccp: revert buggy auto-loading of dccp module
@ 2010-02-02 15:39             ` Neil Horman
  0 siblings, 0 replies; 34+ messages in thread
From: Neil Horman @ 2010-02-02 15:39 UTC (permalink / raw)
  To: dccp

On Tue, Feb 02, 2010 at 03:06:15PM -0000, gerrit@erg.abdn.ac.uk wrote:
> > --- a/net/dccp/probe.c
> > +++ b/net/dccp/probe.c
> > @@ -161,7 +161,8 @@ static __init int dccpprobe_init(void)
> >  	if (!proc_net_fops_create(&init_net, procname, S_IRUSR,
> > &dccpprobe_fops))
> >  		goto err0;
> >
> > -	ret = try_then_request_module((register_jprobe(&dccp_send_probe) = 0),
> > +	try_then_request_module(
> > +		((ret = register_jprobe(&dccp_send_probe)) = 0),
> >  					"dccp");
> >  	if (ret)
> >  		goto err1;
> 
> Apologies for the late response -- delays are sometimes possible due to
> day job. The only problem that I had with this patch was that it was
> apparently not tested, causing the described problems.
> 
> 
> > I've not tested it, but this should do it,
> > without re-breaking the silent dependency.
> 
> I will test it and get back to you until tomorrow morning (GMT),
> if it works I'll also push it out in the test tree.
> 
> Thanks a lot for getting back and devising a different route.
> 
Thanks, and apologies for being brusque.  I just didn't want to fix what is
clearly a problem in what you describe by rebreaking a previously seen problem.
I expect this should work just fine.  Let me know if it doesn't and I'll
resurrect my test bed here and take a look
Neil

> 
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH v2 1/1] dccp: fix auto-loading of dccp(_probe)
@ 2010-02-03  6:16               ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-03  6:16 UTC (permalink / raw)
  To: Neil Horman; +Cc: davem, dccp, netdev

Hi Neil,

I have tested your patch, it works fine thanks to the repeated execution of the macro
argument. I have reformatted it, removing the inner parentheses, which I think is
justified since macros copy their arguments in full. Also converted your email to a
drafted commit message. Due to this, have not copied your signed-off -- if you are
ok, please add, this should be submitted asap.

>>>>>>>>>>>>>>>>>>>>>>>>>>> Patch v2 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
dccp: fix loading of dccp_probe

This fixes commit (38ff3e6bb987ec583268da8eb22628293095d43b) ("dccp_probe:
Fix module load dependencies between dccp and dccp_probe", from 15 Jan).

It fixes the construction of the first argument of try_then_request_module(),
where only valid return codes from the first argument should be returned.

What we do now is assign the result of register_jprobe() to ret, without
the side effect of the comparison.

Acked-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
---
 net/dccp/probe.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/net/dccp/probe.c
+++ b/net/dccp/probe.c
@@ -161,8 +161,8 @@ static __init int dccpprobe_init(void)
 	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))
 		goto err0;
 
-	ret = try_then_request_module((register_jprobe(&dccp_send_probe) == 0),
-					"dccp");
+	try_then_request_module((ret = register_jprobe(&dccp_send_probe)) == 0,
+				"dccp");
 	if (ret)
 		goto err1;
 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH v2 1/1] dccp: fix auto-loading of dccp(_probe)
@ 2010-02-03  6:16               ` Gerrit Renker
  0 siblings, 0 replies; 34+ messages in thread
From: Gerrit Renker @ 2010-02-03  6:16 UTC (permalink / raw)
  To: dccp

Hi Neil,

I have tested your patch, it works fine thanks to the repeated execution of the macro
argument. I have reformatted it, removing the inner parentheses, which I think is
justified since macros copy their arguments in full. Also converted your email to a
drafted commit message. Due to this, have not copied your signed-off -- if you are
ok, please add, this should be submitted asap.

>>>>>>>>>>>>>>>>>>>>>>>>>>> Patch v2 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
dccp: fix loading of dccp_probe

This fixes commit (38ff3e6bb987ec583268da8eb22628293095d43b) ("dccp_probe:
Fix module load dependencies between dccp and dccp_probe", from 15 Jan).

It fixes the construction of the first argument of try_then_request_module(),
where only valid return codes from the first argument should be returned.

What we do now is assign the result of register_jprobe() to ret, without
the side effect of the comparison.

Acked-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
---
 net/dccp/probe.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/net/dccp/probe.c
+++ b/net/dccp/probe.c
@@ -161,8 +161,8 @@ static __init int dccpprobe_init(void)
 	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))
 		goto err0;
 
-	ret = try_then_request_module((register_jprobe(&dccp_send_probe) = 0),
-					"dccp");
+	try_then_request_module((ret = register_jprobe(&dccp_send_probe)) = 0,
+				"dccp");
 	if (ret)
 		goto err1;
 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH v2 1/1] dccp: fix auto-loading of dccp(_probe)
  2010-02-03  6:16               ` Gerrit Renker
@ 2010-02-03 11:58                 ` Neil Horman
  -1 siblings, 0 replies; 34+ messages in thread
From: Neil Horman @ 2010-02-03 11:58 UTC (permalink / raw)
  To: Gerrit Renker, davem, dccp, netdev

On Wed, Feb 03, 2010 at 07:16:56AM +0100, Gerrit Renker wrote:
> Hi Neil,
> 
> I have tested your patch, it works fine thanks to the repeated execution of the macro
> argument. I have reformatted it, removing the inner parentheses, which I think is
> justified since macros copy their arguments in full. Also converted your email to a
> drafted commit message. Due to this, have not copied your signed-off -- if you are
> ok, please add, this should be submitted asap.
> 
Understood, and thank you.  This looks fine to me

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>

> >>>>>>>>>>>>>>>>>>>>>>>>>>> Patch v2 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> dccp: fix loading of dccp_probe
> 
> This fixes commit (38ff3e6bb987ec583268da8eb22628293095d43b) ("dccp_probe:
> Fix module load dependencies between dccp and dccp_probe", from 15 Jan).
> 
> It fixes the construction of the first argument of try_then_request_module(),
> where only valid return codes from the first argument should be returned.
> 
> What we do now is assign the result of register_jprobe() to ret, without
> the side effect of the comparison.
> 
> Acked-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
> ---
>  net/dccp/probe.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> --- a/net/dccp/probe.c
> +++ b/net/dccp/probe.c
> @@ -161,8 +161,8 @@ static __init int dccpprobe_init(void)
>  	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))
>  		goto err0;
>  
> -	ret = try_then_request_module((register_jprobe(&dccp_send_probe) == 0),
> -					"dccp");
> +	try_then_request_module((ret = register_jprobe(&dccp_send_probe)) == 0,
> +				"dccp");
>  	if (ret)
>  		goto err1;
>  
> 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH v2 1/1] dccp: fix auto-loading of dccp(_probe)
@ 2010-02-03 11:58                 ` Neil Horman
  0 siblings, 0 replies; 34+ messages in thread
From: Neil Horman @ 2010-02-03 11:58 UTC (permalink / raw)
  To: dccp

On Wed, Feb 03, 2010 at 07:16:56AM +0100, Gerrit Renker wrote:
> Hi Neil,
> 
> I have tested your patch, it works fine thanks to the repeated execution of the macro
> argument. I have reformatted it, removing the inner parentheses, which I think is
> justified since macros copy their arguments in full. Also converted your email to a
> drafted commit message. Due to this, have not copied your signed-off -- if you are
> ok, please add, this should be submitted asap.
> 
Understood, and thank you.  This looks fine to me

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>

> >>>>>>>>>>>>>>>>>>>>>>>>>>> Patch v2 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> dccp: fix loading of dccp_probe
> 
> This fixes commit (38ff3e6bb987ec583268da8eb22628293095d43b) ("dccp_probe:
> Fix module load dependencies between dccp and dccp_probe", from 15 Jan).
> 
> It fixes the construction of the first argument of try_then_request_module(),
> where only valid return codes from the first argument should be returned.
> 
> What we do now is assign the result of register_jprobe() to ret, without
> the side effect of the comparison.
> 
> Acked-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
> ---
>  net/dccp/probe.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> --- a/net/dccp/probe.c
> +++ b/net/dccp/probe.c
> @@ -161,8 +161,8 @@ static __init int dccpprobe_init(void)
>  	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))
>  		goto err0;
>  
> -	ret = try_then_request_module((register_jprobe(&dccp_send_probe) = 0),
> -					"dccp");
> +	try_then_request_module((ret = register_jprobe(&dccp_send_probe)) = 0,
> +				"dccp");
>  	if (ret)
>  		goto err1;
>  
> 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH v2 1/1] dccp: fix auto-loading of dccp(_probe)
  2010-02-03  6:16               ` Gerrit Renker
@ 2010-02-04  3:01                   ` David Miller
  -1 siblings, 0 replies; 34+ messages in thread
From: David Miller @ 2010-02-04  3:01 UTC (permalink / raw)
  To: nhorman; +Cc: gerrit, dccp, netdev

From: Neil Horman <nhorman@tuxdriver.com>
Date: Wed, 3 Feb 2010 06:58:40 -0500

> On Wed, Feb 03, 2010 at 07:16:56AM +0100, Gerrit Renker wrote:
>> Hi Neil,
>> 
>> I have tested your patch, it works fine thanks to the repeated execution of the macro
>> argument. I have reformatted it, removing the inner parentheses, which I think is
>> justified since macros copy their arguments in full. Also converted your email to a
>> drafted commit message. Due to this, have not copied your signed-off -- if you are
>> ok, please add, this should be submitted asap.
>> 
> Understood, and thank you.  This looks fine to me
> 
> Signed-off-by: Neil Horman <nhorman@tuxdriver.com>

Applied, thanks.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH v2 1/1] dccp: fix auto-loading of dccp(_probe)
@ 2010-02-04  3:01                   ` David Miller
  0 siblings, 0 replies; 34+ messages in thread
From: David Miller @ 2010-02-04  3:01 UTC (permalink / raw)
  To: dccp

From: Neil Horman <nhorman@tuxdriver.com>
Date: Wed, 3 Feb 2010 06:58:40 -0500

> On Wed, Feb 03, 2010 at 07:16:56AM +0100, Gerrit Renker wrote:
>> Hi Neil,
>> 
>> I have tested your patch, it works fine thanks to the repeated execution of the macro
>> argument. I have reformatted it, removing the inner parentheses, which I think is
>> justified since macros copy their arguments in full. Also converted your email to a
>> drafted commit message. Due to this, have not copied your signed-off -- if you are
>> ok, please add, this should be submitted asap.
>> 
> Understood, and thank you.  This looks fine to me
> 
> Signed-off-by: Neil Horman <nhorman@tuxdriver.com>

Applied, thanks.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 01/86] dccp: fix bug in cache allocation
  2010-02-01  6:18     ` Gerrit Renker
@ 2010-02-04  3:01         ` David Miller
  -1 siblings, 0 replies; 34+ messages in thread
From: David Miller @ 2010-02-04  3:01 UTC (permalink / raw)
  To: nhorman; +Cc: gerrit, dccp, netdev

From: Neil Horman <nhorman@tuxdriver.com>
Date: Mon, 1 Feb 2010 06:56:38 -0500

> On Mon, Feb 01, 2010 at 07:18:06AM +0100, Gerrit Renker wrote:
>> This fixes a bug introduced in commit de4ef86cfce60d2250111f34f8a084e769f23b16
>> ("dccp: fix dccp rmmod when kernel configured to use slub", 17 Jan): the
>> vsnprintf used sizeof(slab_name_fmt), which became truncated to 4 bytes, since
>> slab_name_fmt is now a 4-byte pointer and no longer a 32-character array.
>> 
>> This lead to error messages such as
>>  FATAL: Error inserting dccp: No buffer space available
>> 
>>  >> kernel: [ 1456.341501] kmem_cache_create: duplicate cache cci
>> generated due to the truncation after the 3rrdc character.
>> 
>> Fixed for the moment by introducing a symbolic constant. Tested to fix the bug.
>> 
>> Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
> 
> These changes make sense, sorry for not seeing that earlier.  Thanks!
> 
> Acked-by: Neil Horman <nhorman@tuxdriver.com>

Applied.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 01/86] dccp: fix bug in cache allocation
@ 2010-02-04  3:01         ` David Miller
  0 siblings, 0 replies; 34+ messages in thread
From: David Miller @ 2010-02-04  3:01 UTC (permalink / raw)
  To: dccp

From: Neil Horman <nhorman@tuxdriver.com>
Date: Mon, 1 Feb 2010 06:56:38 -0500

> On Mon, Feb 01, 2010 at 07:18:06AM +0100, Gerrit Renker wrote:
>> This fixes a bug introduced in commit de4ef86cfce60d2250111f34f8a084e769f23b16
>> ("dccp: fix dccp rmmod when kernel configured to use slub", 17 Jan): the
>> vsnprintf used sizeof(slab_name_fmt), which became truncated to 4 bytes, since
>> slab_name_fmt is now a 4-byte pointer and no longer a 32-character array.
>> 
>> This lead to error messages such as
>>  FATAL: Error inserting dccp: No buffer space available
>> 
>>  >> kernel: [ 1456.341501] kmem_cache_create: duplicate cache cci
>> generated due to the truncation after the 3rrdc character.
>> 
>> Fixed for the moment by introducing a symbolic constant. Tested to fix the bug.
>> 
>> Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
> 
> These changes make sense, sorry for not seeing that earlier.  Thanks!
> 
> Acked-by: Neil Horman <nhorman@tuxdriver.com>

Applied.

^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2010-02-04  3:01 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <recent-dccp-bug-fixes-jan-2010>
2010-02-01  6:18 ` [BUG-FIX][PATCH 0/2]: recent dccp fixes Gerrit Renker
2010-02-01  6:18   ` Gerrit Renker
2010-02-01  6:18   ` [PATCH 01/86] dccp: fix bug in cache allocation Gerrit Renker
2010-02-01  6:18     ` Gerrit Renker
2010-02-01  6:18     ` [PATCH 02/86] dccp: revert buggy auto-loading of dccp module Gerrit Renker
2010-02-01  6:18       ` Gerrit Renker
2010-02-01 12:21       ` Neil Horman
2010-02-01 12:21         ` Neil Horman
2010-02-01 18:38         ` Neil Horman
2010-02-01 18:38           ` Neil Horman
2010-02-02 15:06         ` gerrit
2010-02-02 15:06           ` gerrit
2010-02-02 15:39           ` Neil Horman
2010-02-02 15:39             ` Neil Horman
2010-02-03  6:16             ` [PATCH v2 1/1] dccp: fix auto-loading of dccp(_probe) Gerrit Renker
2010-02-03  6:16               ` Gerrit Renker
2010-02-03 11:58               ` Neil Horman
2010-02-03 11:58                 ` Neil Horman
2010-02-04  3:01                 ` David Miller
2010-02-04  3:01                   ` David Miller
2010-02-01 11:56     ` [PATCH 01/86] dccp: fix bug in cache allocation Neil Horman
2010-02-01 11:56       ` Neil Horman
2010-02-01 12:08       ` Gerrit Renker
2010-02-01 12:08         ` Gerrit Renker
2010-02-01 12:12         ` [BUG-FIX v2][PATCH 0/2]: recent dccp fixes Gerrit Renker
2010-02-01 12:12           ` Gerrit Renker
2010-02-01 12:12           ` [Bug-Fix][PATCH 1/2] dccp: fix bug in cache allocation Gerrit Renker
2010-02-01 12:12             ` Gerrit Renker
2010-02-01 12:12             ` [Bug-Fix][PATCH 2/2] dccp: revert buggy auto-loading of dccp module Gerrit Renker
2010-02-01 12:12               ` Gerrit Renker
2010-02-04  3:01       ` [PATCH 01/86] dccp: fix bug in cache allocation David Miller
2010-02-04  3:01         ` David Miller
2010-02-01  7:17   ` [BUG-FIX][PATCH 0/2]: recent dccp fixes David Miller
2010-02-01  7:17     ` David Miller

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.