On Monday 20 October 2014 20:06:01 Ebru Akagunduz wrote:
> do_gettimeofday() only can get 32-bit time types
> but the driver should be able to use dates that are
> after January 2038.
> 
> Remove do_gettimeofday() and use
> jiffies comparison to supply 64-bit time types.

The description doesn't seem to match what you are doing:

- the use of 'struct timeval' in this driver is not actually unsafe
- using jiffies does not make it use a 64-bit time type.
- you do not mention that using jiffies makes the driver more
  efficient, which is what James was interested in
- The ips_fix_ffdc_time that needs to be changed for 64-bit time
  does not get changed in this patch. As discussed on IRC, that
  should be a separate patch.

> @@ -6000,7 +6001,7 @@ ips_ffdc_time(ips_ha_t * ha)
>  /*                                                                          
> */
>  
> /****************************************************************************/
>  static void
> -ips_fix_ffdc_time(ips_ha_t * ha, ips_scb_t * scb, time_t current_time)
> +ips_fix_ffdc_time(ips_ha_t * ha, ips_scb_t * scb, unsigned long current_time)
>  {
>       long days;
>       long rem;

Using 'unsigned long' for a jiffies value also breaks the function, which
makes calculations based on the assumption that you are dealing with a
time_t. I think the best fix here is to use rtc_ktime_to_tm(ktime_get())
to get a 'struct rtc_time' describing the current time, and then removing
most of the code.

You will have to change Kconfig to 'select RTC_LIB' from the ips driver
in order to do this.

        Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to