Re: [PATCH] scsi: Remove usage of struct timeval

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>

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
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux