All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yinghai Lu <Yinghai.Lu@Sun.COM>
To: Horms <horms@verge.net.au>
Cc: linux-ia64 <linux-ia64@vger.kernel.org>,
	Tony Luck <tony.luck@intel.com>, Andi Kleen <ak@suse.de>,
	Bjorn Helgaas <bjorn.helgaas@hp.com>,
	Russell King <rmk@arm.linux.org.uk>,
	Gerd Hoffmann <kraxel@suse.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Subject: Re: Regression in serial console on ia64 after 2.6.22
Date: Wed, 25 Jul 2007 15:39:01 +0000	[thread overview]
Message-ID: <46A76E95.90903@sun.com> (raw)
In-Reply-To: <20070725071718.GB18068@verge.net.au>

Horms wrote:
> On Tue, Jul 24, 2007 at 04:57:32PM -0700, Yinghai Lu wrote:
>> IA64
>>
>> Subject         : Regression in serial console on ia64 after 2.6.22
>> References      : http://marc.info/?l=linux-ia64&m\x118483645914066&w=2
>> Last known good : ?
>> Submitter       : Horms <horms@verge.net.au>
>> Caused-By       : Yinghai Lu <Yinghai.Lu@Sun.COM>
>>                   commit 18a8bd949d6adb311ea816125ff65050df1f3f6e
>> Handled-By      : ?
>> Status          : unknown
>>
>>
>> please test this patch.
>>
>> YH
> 
> I just posted a similar patch (sorry, I didn't see your post until
> afterwards). I guess that we both have the same ideas :)
> 
>>
>> [PATCH] ia64: move machvec_init before parse_early_param
>>
>> So ia64_mv is initialized before early console
>>
>> Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>
>>
>> diff --git a/arch/ia64/kernel/machvec.c b/arch/ia64/kernel/machvec.c
>> index 13df337..a94feaa 100644
>> --- a/arch/ia64/kernel/machvec.c
>> +++ b/arch/ia64/kernel/machvec.c
>> @@ -14,12 +14,6 @@ struct ia64_machine_vector ia64_mv;
>>  EXPORT_SYMBOL(ia64_mv);
>>  
>>  static __initdata const char *mvec_name;
>> -static __init int setup_mvec(char *s)
>> -{
>> -	mvec_name = s;
>> -	return 0;
>> -}
>> -early_param("machvec", setup_mvec);
>>  
>>  static struct ia64_machine_vector * __init
>>  lookup_machvec (const char *name)
>> @@ -42,6 +36,10 @@ machvec_init (const char *name)
>>  
>>  	if (!name)
>>  		name = mvec_name ? mvec_name : acpi_get_sysname();
> 
> I think that mvec_name can be disposed of all together as
> its only used by the line above and setup_mvec(), which in
> turn is only used by early_param. I got rid of mvec_name in
> my incantation of this patch, and it seemed to work quite well.

with cmd_line or NULL, mvec_nanme could get assigned.
next machvec_init(NULL) could reuse that

> 
>> +
>> +	if (!mvec_name)
>> +		mvec_name = name;
>> +
>>  	mv = lookup_machvec(name);
>>  	if (!mv)
>>  		panic("generic kernel failed to find machine vector for"
>> diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
>> index cf06fe7..b06d7b7 100644
>> --- a/arch/ia64/kernel/setup.c
>> +++ b/arch/ia64/kernel/setup.c
>> @@ -481,6 +481,9 @@ int __init reserve_elfcorehdr(unsigned long *start, unsigned long *end)
>>  void __init
>>  setup_arch (char **cmdline_p)
>>  {
>> +#ifdef CONFIG_IA64_GENERIC
>> +	char *mvstr;
>> +#endif
>>  	unw_init();
>>  
>>  	ia64_patch_vtop((u64) __start___vtop_patchlist, (u64) __end___vtop_patchlist);
>> @@ -491,12 +494,15 @@ setup_arch (char **cmdline_p)
>>  	efi_init();
>>  	io_port_init();
>>  
>> -	parse_early_param();
>> -
>>  #ifdef CONFIG_IA64_GENERIC
>> -	machvec_init(NULL);
>> +	mvstr = strstr(*cmd_line_p, "machvec=")
>> +	if (mvstr)
>> +		mvstr = strchr(mvstr, '=') + 1;
>> +	machvec_init(mvstr);
>>  #endif
> 
> Do you need to copy and truncate mvstr on ' ' in the case
> that machvec= isn't the last argument on the command line?
> I did this in my patch, though I didn't test to see if
> it was uneccessary.

or may need to update lookup_machvec...
from strcmp to strstr...

just want to the code to be less changes as possible.

YH

WARNING: multiple messages have this Message-ID (diff)
From: Yinghai Lu <Yinghai.Lu@Sun.COM>
To: Horms <horms@verge.net.au>
Cc: linux-ia64 <linux-ia64@vger.kernel.org>,
	Tony Luck <tony.luck@intel.com>, Andi Kleen <ak@suse.de>,
	Bjorn Helgaas <bjorn.helgaas@hp.com>,
	Russell King <rmk@arm.linux.org.uk>,
	Gerd Hoffmann <kraxel@suse.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Subject: Re: Regression in serial console on ia64 after 2.6.22
Date: Wed, 25 Jul 2007 08:39:01 -0700	[thread overview]
Message-ID: <46A76E95.90903@sun.com> (raw)
In-Reply-To: <20070725071718.GB18068@verge.net.au>

Horms wrote:
> On Tue, Jul 24, 2007 at 04:57:32PM -0700, Yinghai Lu wrote:
>> IA64
>>
>> Subject         : Regression in serial console on ia64 after 2.6.22
>> References      : http://marc.info/?l=linux-ia64&m=118483645914066&w=2
>> Last known good : ?
>> Submitter       : Horms <horms@verge.net.au>
>> Caused-By       : Yinghai Lu <Yinghai.Lu@Sun.COM>
>>                   commit 18a8bd949d6adb311ea816125ff65050df1f3f6e
>> Handled-By      : ?
>> Status          : unknown
>>
>>
>> please test this patch.
>>
>> YH
> 
> I just posted a similar patch (sorry, I didn't see your post until
> afterwards). I guess that we both have the same ideas :)
> 
>>
>> [PATCH] ia64: move machvec_init before parse_early_param
>>
>> So ia64_mv is initialized before early console
>>
>> Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>
>>
>> diff --git a/arch/ia64/kernel/machvec.c b/arch/ia64/kernel/machvec.c
>> index 13df337..a94feaa 100644
>> --- a/arch/ia64/kernel/machvec.c
>> +++ b/arch/ia64/kernel/machvec.c
>> @@ -14,12 +14,6 @@ struct ia64_machine_vector ia64_mv;
>>  EXPORT_SYMBOL(ia64_mv);
>>  
>>  static __initdata const char *mvec_name;
>> -static __init int setup_mvec(char *s)
>> -{
>> -	mvec_name = s;
>> -	return 0;
>> -}
>> -early_param("machvec", setup_mvec);
>>  
>>  static struct ia64_machine_vector * __init
>>  lookup_machvec (const char *name)
>> @@ -42,6 +36,10 @@ machvec_init (const char *name)
>>  
>>  	if (!name)
>>  		name = mvec_name ? mvec_name : acpi_get_sysname();
> 
> I think that mvec_name can be disposed of all together as
> its only used by the line above and setup_mvec(), which in
> turn is only used by early_param. I got rid of mvec_name in
> my incantation of this patch, and it seemed to work quite well.

with cmd_line or NULL, mvec_nanme could get assigned.
next machvec_init(NULL) could reuse that

> 
>> +
>> +	if (!mvec_name)
>> +		mvec_name = name;
>> +
>>  	mv = lookup_machvec(name);
>>  	if (!mv)
>>  		panic("generic kernel failed to find machine vector for"
>> diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
>> index cf06fe7..b06d7b7 100644
>> --- a/arch/ia64/kernel/setup.c
>> +++ b/arch/ia64/kernel/setup.c
>> @@ -481,6 +481,9 @@ int __init reserve_elfcorehdr(unsigned long *start, unsigned long *end)
>>  void __init
>>  setup_arch (char **cmdline_p)
>>  {
>> +#ifdef CONFIG_IA64_GENERIC
>> +	char *mvstr;
>> +#endif
>>  	unw_init();
>>  
>>  	ia64_patch_vtop((u64) __start___vtop_patchlist, (u64) __end___vtop_patchlist);
>> @@ -491,12 +494,15 @@ setup_arch (char **cmdline_p)
>>  	efi_init();
>>  	io_port_init();
>>  
>> -	parse_early_param();
>> -
>>  #ifdef CONFIG_IA64_GENERIC
>> -	machvec_init(NULL);
>> +	mvstr = strstr(*cmd_line_p, "machvec=")
>> +	if (mvstr)
>> +		mvstr = strchr(mvstr, '=') + 1;
>> +	machvec_init(mvstr);
>>  #endif
> 
> Do you need to copy and truncate mvstr on ' ' in the case
> that machvec= isn't the last argument on the command line?
> I did this in my patch, though I didn't test to see if
> it was uneccessary.

or may need to update lookup_machvec...
from strcmp to strstr...

just want to the code to be less changes as possible.

YH

  reply	other threads:[~2007-07-25 15:39 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-19  7:41 Regression in serial console on ia64 after 2.6.22 Horms
2007-07-20  2:08 ` Yinghai Lu
2007-07-24 23:57   ` Yinghai Lu
2007-07-24 23:57     ` Yinghai Lu
2007-07-25  7:17     ` Horms
2007-07-25  7:17       ` Horms
2007-07-25 15:39       ` Yinghai Lu [this message]
2007-07-25 15:39         ` Yinghai Lu
2007-07-27  1:41         ` Andrew Morton
2007-07-27  1:41           ` Andrew Morton
2007-07-27  1:52           ` Yinghai Lu
2007-07-27  1:52             ` Yinghai Lu
2007-07-25  7:10 ` Horms

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=46A76E95.90903@sun.com \
    --to=yinghai.lu@sun.com \
    --cc=ak@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=bjorn.helgaas@hp.com \
    --cc=horms@verge.net.au \
    --cc=kraxel@suse.de \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.k.k.piotrowski@gmail.com \
    --cc=rmk@arm.linux.org.uk \
    --cc=tony.luck@intel.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.