Post by David Brownellagainst today's GIT; there's a section error and
several printk format warnings. x86_64.
I see that Andrew also got tired of such printk warnings, so his
fix is now in the kernel.org tree ... here's a resend of this
patch, updated against today's GIT by removing two of the printk
warning fixes.
jffs-***@axis.com is practically dead. Iirc, the list was used for
the old jffs[1] code. Jffs2 is usually discussed on
Post by David Brownell(a) section mismatch error
(b) wrong printk format warnings
The section mismatch issue was fixed by making a few more routines as
belonging in init or exit sections, but there are more routines that
could (should!) get such annotations.
Patch looks sane. Does it still apply against dwmw2's latest tree?
Post by David BrownellIndex: g26/fs/jffs2/compr.c
===================================================================
--- g26.orig/fs/jffs2/compr.c 2006-05-12 18:48:21.000000000 -0700
+++ g26/fs/jffs2/compr.c 2006-05-12 19:40:08.000000000 -0700
@@ -412,7 +412,7 @@ void jffs2_free_comprbuf(unsigned char *
kfree(comprbuf);
}
-int jffs2_compressors_init(void)
+int __init jffs2_compressors_init(void)
{
/* Registering compressors */
#ifdef CONFIG_JFFS2_ZLIB
@@ -440,7 +440,7 @@ int jffs2_compressors_init(void)
return 0;
}
-int jffs2_compressors_exit(void)
+int __exit jffs2_compressors_exit(void)
{
/* Unregistering compressors */
#ifdef CONFIG_JFFS2_RUBIN
Index: g26/fs/jffs2/compr_zlib.c
===================================================================
--- g26.orig/fs/jffs2/compr_zlib.c 2006-05-12 18:48:21.000000000 -0700
+++ g26/fs/jffs2/compr_zlib.c 2006-05-12 19:40:08.000000000 -0700
@@ -60,7 +60,7 @@ static int __init alloc_workspaces(void)
return 0;
}
-static void free_workspaces(void)
+static void __exit free_workspaces(void)
{
vfree(def_strm.workspace);
vfree(inf_strm.workspace);
@@ -216,7 +216,7 @@ int __init jffs2_zlib_init(void)
return ret;
}
-void jffs2_zlib_exit(void)
+void __exit jffs2_zlib_exit(void)
{
jffs2_unregister_compressor(&jffs2_zlib_comp);
free_workspaces();
Index: g26/fs/jffs2/readinode.c
===================================================================
--- g26.orig/fs/jffs2/readinode.c 2006-05-12 18:48:21.000000000 -0700
+++ g26/fs/jffs2/readinode.c 2006-05-12 19:40:08.000000000 -0700
@@ -204,7 +204,7 @@ static inline int read_dnode(struct jffs
tn = jffs2_alloc_tmp_dnode_info();
if (!tn) {
- JFFS2_ERROR("failed to allocate tn (%d bytes).\n", sizeof(*tn));
+ JFFS2_ERROR("failed to allocate tn (%zd bytes).\n", sizeof(*tn));
return -ENOMEM;
}
@@ -434,7 +434,7 @@ static int read_more(struct jffs2_sb_inf
}
if (retlen < len) {
- JFFS2_ERROR("short read at %#08x: %d instead of %d.\n",
+ JFFS2_ERROR("short read at %#08x: %zu instead of %d.\n",
offs, retlen, len);
return -EIO;
}
@@ -542,7 +542,8 @@ static int jffs2_get_inode_nodes(struct
}
if (retlen < len) {
- JFFS2_ERROR("short read at %#08x: %d instead of %d.\n", ref_offset(ref), retlen, len);
+ JFFS2_ERROR("short read at %#08x: %zd instead of %d.\n",
+ ref_offset(ref), retlen, len);
err = -EIO;
goto free_out;
}