All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chen Gang <gang.chen.5i5j@gmail.com>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>, Pavel Machek <pavel@ucw.cz>
Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>,
	len.brown@intel.com,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] kernel/power/hibernate.c: be sure of 'start' is not bigger than 'stop'
Date: Tue, 22 Apr 2014 08:58:34 +0800	[thread overview]
Message-ID: <5355BEBA.8040001@gmail.com> (raw)
In-Reply-To: <1597133.Gff7RjtQZQ@vostro.rjw.lan>

On 04/22/2014 04:43 AM, Rafael J. Wysocki wrote:
> On Monday, April 21, 2014 10:09:30 PM Pavel Machek wrote:
>> On Mon 2014-04-21 21:40:27, Chen Gang wrote:
>>> For do_div(), it need 'u64' type, which means the outside must be sure
>>> of 'start' is not bigger than 'stop', or it will report warning.
>>>
>>> The related warning (with allmodconfig for unicore32):
>>>
>>>     CC      kernel/power/hibernate.o
>>>   kernel/power/hibernate.c: In function ‘swsusp_show_speed’:
>>>   kernel/power/hibernate.c:237: warning: comparison of distinct pointer types lacks a cast
>>>
>>> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
>>
>>>  {
>>> -	s64 elapsed_centisecs64;
>>> +	u64 elapsed_centisecs64;
>>>  	int centisecs;
>>>  	int k;
>>>  	int kps;
>>>  
>>>  	elapsed_centisecs64 = timeval_to_ns(stop) - timeval_to_ns(start);
>>> +	if ((s64)elapsed_centisecs64 < 0) {
>>> +		printk(KERN_ERR "PM: stop: %llu < start %llu\n",
>>> +			timeval_to_ns(stop), timeval_to_ns(start));
>>> +		return;
>>> +	}
>>>  	do_div(elapsed_centisecs64, NSEC_PER_SEC / 100);
>>>  	centisecs = elapsed_centisecs64;
>>>  	if (centisecs == 0)
>>
>> Quite a lot of code to shut up warning in mostly debugging
>> function... is there alternative method of shutting it up? Have you
>> seen < 0 values in wild?
> 
> No, I don't think so.  This is a purely theoretical problem that never
> happens in practice, because all of the callers do the right thing.
> 
> Rafael 
> 

OK, it sounds fine to me, I shall send patch v2 for it.

Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed

      reply	other threads:[~2014-04-22  0:58 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-21 13:40 [PATCH] kernel/power/hibernate.c: be sure of 'start' is not bigger than 'stop' Chen Gang
2014-04-21 20:09 ` Pavel Machek
2014-04-21 20:43   ` Rafael J. Wysocki
2014-04-22  0:58     ` Chen Gang [this message]

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=5355BEBA.8040001@gmail.com \
    --to=gang.chen.5i5j@gmail.com \
    --cc=gxt@mprc.pku.edu.cn \
    --cc=len.brown@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=rjw@rjwysocki.net \
    /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.