public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Tina Ruchandani <ruchandani.tina@gmail.com>
Cc: linux-scsi@vger.kernel.org,
	"James E.J. Bottomley" <JBottomley@parallels.com>,
	Anil Ravindranath <anil_ravindranath@pmc-sierra.com>
Subject: Re: [PATCH] scsi: Remove usage of struct timeval
Date: Wed, 04 Feb 2015 15:56:27 +0100	[thread overview]
Message-ID: <7352347.rDHNZrOBmc@wuerfel> (raw)
In-Reply-To: <20150204030954.GA3729@tinar>

On Wednesday 04 February 2015 08:39:54 Tina Ruchandani wrote:
> struct timeval will have its tv_sec field overflow on 32-bit systems
> in year 2038 and beyond. This patch removes the usage of struct timeval
> and instead uses 64-bit ktime_t to get the current milliseconds
> to populate pmcraid_timestamp_data.
> 
> Signed-off-by: Tina Ruchandani <ruchandani.tina@gmail.com>

The change you did looks correct, but I see two problems:

- The subject line should mention the name of the driver you
  change, as you are not doing this for the entire scsi subsystem
  at once.

> @@ -5569,11 +5570,9 @@ static void pmcraid_set_timestamp(struct pmcraid_cmd *cmd)
>         __be32 time_stamp_len = cpu_to_be32(PMCRAID_TIMESTAMP_LEN);
>         struct pmcraid_ioadl_desc *ioadl = ioarcb->add_data.u.ioadl;
>  
> -       struct timeval tv;
>         __le64 timestamp;
>  
> -       do_gettimeofday(&tv);
> -       timestamp = tv.tv_sec * 1000;
> +       timestamp = ktime_to_ms(ktime_get_real());
>  
>         pinstance->timestamp_data->timestamp[0] = (__u8)(timestamp);
>         pinstance->timestamp_data->timestamp[1] = (__u8)((timestamp) >> 8);

It looks like a preexisting bug here, but it makes sense to fix
it at the same time and describe that change in the patch
changelog:

timestamp is declared as an __le64 type but gets set to a cpu-endian
value from tv.tv_sec or ktime_to_ms, which is wrong. The code indeed
gets the endianess right by copying the bytes individually, so I think
you should just use a u64 type here.

	Arnd

      reply	other threads:[~2015-02-04 14:56 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-04  3:09 [PATCH] scsi: Remove usage of struct timeval Tina Ruchandani
2015-02-04 14:56 ` Arnd Bergmann [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=7352347.rDHNZrOBmc@wuerfel \
    --to=arnd@arndb.de \
    --cc=JBottomley@parallels.com \
    --cc=anil_ravindranath@pmc-sierra.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=ruchandani.tina@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox