Re: for review: sys/dev/md/md.c patch

From: Julian Elischer <julian_at_elischer.org>
Date: Sun, 29 Jan 2006 12:34:54 -0800
Luigi Rizzo wrote:

>just discovered, trying to resurrect picobsd on -current,
>that the compiler in 6.x/7.x has become smart and, at least
>with the default compilation flags, will optimize out
>the "end_mfs_root" string from the object.
>As a consequence, any checks that the preloaded module
>does not overflow the allocated space (looking at the
>'MFS Filesystem had better STOP here' string in the patched
>object) will fail.
>
>The attached patch fixes the issue. Any objection if i commit it ?
>  
>

seems fair to me. can't hurt anything unless MD_ROOT_SIZE  is defined..

I LIKE PicoBSD.. and it woul dbe a shame if it was lost as a capacity.
It's a pitty everythng has grown so much.. last I tried (on 5.x)
you could JUST get a kenrel plus a shell and one small app. (in my case 
ssh).
onto a floppy.. I hav eserious doubts about being able to do that now..

pitty.. I have an old laptop with no HD that was a good little VPN 
endpoint using
the 5.x based picoBSD.

>	cheers
>	luigi
>
>Index: md.c
>===================================================================
>RCS file: /prova/home/ncvs/src/sys/dev/md/md.c,v
>retrieving revision 1.159
>diff -u -p -r1.159 md.c
>--- md.c	31 Oct 2005 15:41:19 -0000	1.159
>+++ md.c	29 Jan 2006 12:57:22 -0000
>_at__at_ -102,8 +102,13 _at__at_ SYSCTL_INT(_debug, OID_AUTO, mddebug, CT
> 
> #if defined(MD_ROOT) && defined(MD_ROOT_SIZE)
> /* Image gets put here: */
>-static u_char mfs_root[MD_ROOT_SIZE*1024] = "MFS Filesystem goes here";
>-static u_char end_mfs_root[] __unused = "MFS Filesystem had better STOP here";
>+static struct {
>+	u_char start[MD_ROOT_SIZE*1024];
>+	u_char end[128];
>+} mfs_root = {
>+	.start = "MFS Filesystem goes here",
>+	.end = "MFS Filesystem had better STOP here",
>+};
> #endif
> 
> static g_init_t g_md_init;
>_at__at_ -1139,7 +1144,7 _at__at_ g_md_init(struct g_class *mp __unused)
> 	g_topology_unlock();
> #ifdef MD_ROOT_SIZE
> 	sx_xlock(&md_sx);
>-	md_preloaded(mfs_root, MD_ROOT_SIZE * 1024);
>+	md_preloaded(mfs_root.start, MD_ROOT_SIZE * 1024);
> 	sx_xunlock(&md_sx);
> #endif
> 	/* XXX: are preload_* static or do they need Giant ? */
>_______________________________________________
>freebsd-current_at_freebsd.org mailing list
>http://lists.freebsd.org/mailman/listinfo/freebsd-current
>To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>  
>
Received on Sun Jan 29 2006 - 19:35:00 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:51 UTC