On Wednesday 18 November 2015 19:57:12 Amitoj Kaur Chawla wrote:
> >
> >> diff --git a/drivers/scsi/bfa/bfa_fcpim.c b/drivers/scsi/bfa/bfa_fcpim.c
> >> index 6730340..e5c211f 100644
> >> --- a/drivers/scsi/bfa/bfa_fcpim.c
> >> +++ b/drivers/scsi/bfa/bfa_fcpim.c
> >> @@ -1478,7 +1478,7 @@ bfa_itnim_get_ioprofile(struct bfa_itnim_s *itnim,
> >> return BFA_STATUS_IOPROFILE_OFF;
> >>
> >> itnim->ioprofile.index = BFA_IOBUCKET_MAX;
> >> - itnim->ioprofile.io_profile_start_time = (u32)(time_t)
> >> + itnim->ioprofile.io_profile_start_time = (u32)
> >>
> >> bfa_io_profile_start_time(itnim->bfa);
> >> itnim->ioprofile.clock_res_mul = bfa_io_lat_clock_res_mul;
> >> itnim->ioprofile.clock_res_div = bfa_io_lat_clock_res_div;
> >>
> >
>
> So in addition to removing the cast I'm adding a comment where
> io_profile_start_time is declared that the variable would overflow in
> 2106 or 2038.
I was thinking of putting the comment inside of the bfa_itnim_get_ioprofile
function, but you could also do both and make one of them a short reference
to the other.
> Also the changelog would look something like:
>
> 32 bit systems using 'time_t' will break in the year 2038, so
> we modify the code appropriately.
>
> This patch removes the cast to 'time_t' in the assignment statement
> since we are eventually removing the time_t definition from the kernel
> as an effort to solve the y2038 problem. This change will avoid the build
> error
> but the code is still broken and requires a change in the ioctl interface.
>
> Further, a comment has been added to the declaration of io_profile_start_time
> since the variable will break in 2038 or 2106 depending on user space
> interpreting it as signed or unsigned.
I would still add a sentence like this below the --- line:
Only apply this patch if it's seen as acceptable that the
io_profile_start_time remains truncated to 32 bits in
IOCMD_ITNIM_GET_IOPROFILE. If this is something that needs to
be fixed by adding a replacement vendor command, leave the
cast in place as a reminder.
Arnd
_______________________________________________
Y2038 mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/y2038