Thanks Hollis for the feedback. Added changes.
Signed-off-by: Jerone Young <jyoung5@xxxxxxxxxx>
diff -r 9148f7816d00 xen/arch/powerpc/boot_of.c
--- a/xen/arch/powerpc/boot_of.c Tue Oct 24 19:11:00 2006 -0400
+++ b/xen/arch/powerpc/boot_of.c Wed Dec 06 13:59:37 2006 -0600
@@ -964,10 +964,11 @@ static void * __init boot_of_module(ulon
static module_t mods[4];
ulong mod0_start;
ulong mod0_size;
- static const char sepr[] = " -- ";
+ static const char * sepr[] = {" -- ", " || "};
+ int sepr_index;
extern char dom0_start[] __attribute__ ((weak));
extern char dom0_size[] __attribute__ ((weak));
- const char *p;
+ const char *p = NULL;
int mod;
void *oft;
@@ -1020,11 +1021,18 @@ static void * __init boot_of_module(ulon
of_printf("%s: dom0 mod @ 0x%016x[0x%x]\n", __func__,
mods[mod].mod_start, mods[mod].mod_end);
- p = strstr((char *)(ulong)mbi->cmdline, sepr);
+
+ /* look for delimiter -- or || is delimiter */
+ for (sepr_index = 0; sepr_index < ARRAY_SIZE(sepr); sepr_index++){
+ p = strstr((char *)(ulong)mbi->cmdline, sepr[sepr_index]);
+ if (p != NULL)
+ break;
+ }
+
if (p != NULL) {
/* Xen proper should never know about the dom0 args. */
*(char *)p = '\0';
- p += sizeof (sepr) - 1;
+ p += strlen(sepr[sepr_index]);
mods[mod].string = (u32)(ulong)p;
of_printf("%s: dom0 mod string: %s\n", __func__, p);
}
On Wed, 2006-12-06 at 13:41 -0600, Hollis Blanchard wrote:
> On Wed, 2006-12-06 at 11:37 -0600, Jerone Young wrote:
> > Update patch with Jimi's suggestions:
> >
> > Signed-off-by: Jerone Young <jyoung5@xxxxxxxxxx>
> >
> > diff -r 9148f7816d00 xen/arch/powerpc/boot_of.c
> > --- a/xen/arch/powerpc/boot_of.c Tue Oct 24 19:11:00 2006 -0400
> > +++ b/xen/arch/powerpc/boot_of.c Wed Dec 06 11:34:37 2006 -0600
> > @@ -964,10 +964,11 @@ static void * __init boot_of_module(ulon
> > static module_t mods[4];
> > ulong mod0_start;
> > ulong mod0_size;
> > - static const char sepr[] = " -- ";
> > + static const char * sepr[] = {" -- ", " || "};
> > + int sepr_index = 0;
> > extern char dom0_start[] __attribute__ ((weak));
> > extern char dom0_size[] __attribute__ ((weak));
> > - const char *p;
> > + const char *p = NULL;
> > int mod;
> > void *oft;
> >
> > @@ -1020,11 +1021,17 @@ static void * __init boot_of_module(ulon
> >
> > of_printf("%s: dom0 mod @ 0x%016x[0x%x]\n", __func__,
> > mods[mod].mod_start, mods[mod].mod_end);
> > - p = strstr((char *)(ulong)mbi->cmdline, sepr);
> > +
> > + /* look for deliminator -- or || is delimator */
>
> "delimiter"
>
> > + for(sepr_index; sepr_index < ARRAY_SIZE(sepr); sepr_index++){
>
> Add a space after "for", and move the "sepr_index = 0" initialization
> here please.
>
> > + p = strstr((char *)(ulong)mbi->cmdline, sepr[sepr_index]);
> > + if (p != NULL)
> > + break;
> > + }
> > +
> > if (p != NULL) {
> > /* Xen proper should never know about the dom0 args. */
> > - *(char *)p = '\0';
> > - p += sizeof (sepr) - 1;
> > + p += strlen(sepr[sepr_index]);
> > mods[mod].string = (u32)(ulong)p;
> > of_printf("%s: dom0 mod string: %s\n", __func__, p);
> > }
>
> You've removed the code where we terminate Xen's arguments with a NULL
> char.
>
> Fix these issues and I'm quite happy with it.
>
> --
> Hollis Blanchard
> IBM Linux Technology Center
>
_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel
|