On 10/06/2015 10:32 AM, Arnd Bergmann wrote: > On Monday 05 October 2015 20:51:08 Oliver Hartkopp wrote: >> >> I double checked some (more) BCM applications I have access to. >> >> E.g. https://github.com/linux-can/can-tests >> >> When you do a 'git grep ival1' there you get something like >> >> tst-bcm-cycle.c: msg.msg_head.ival1.tv_sec = 1; >> tst-bcm-cycle.c: msg.msg_head.ival1.tv_usec = 0; >> tst-bcm-cycle.c: msg.msg_head.ival1.tv_sec = 0; >> tst-bcm-cycle.c: msg.msg_head.ival1.tv_usec = 0; >> tst-bcm-dump.c: msg.msg_head.ival1.tv_sec = timeout / 1000000; >> tst-bcm-dump.c: msg.msg_head.ival1.tv_usec = timeout % 1000000; >> (..) >> >> So the usual way to assign values to ival1 and ival2 is NOT to assign an >> existing struct timeval but to directly assign its tv_[u]sec elements. > > Ok, very good. > >> I applied your bcm.h changes to my local can-tests tree and it compiles >> without any problems - as expected. I don't see any serious drawback with your >> idea. I wonder whether developers would ever notice this change ... >> >>> We could address problem a) by using '__u32' or 'int' members >>> rather than 'long', but that would have a more significant >>> downside in also breaking support for all existing 64-bit user >>> binaries that might be using this interface, which is likely >>> not acceptable. >> >> Indeed. >> >>> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> >>> Cc: Oliver Hartkopp <socketcan@xxxxxxxxxxxx> >> >> Thanks for your good suggestion to make the BCM API y2038 proof! >> >> Acked-by: Oliver Hartkopp <socketcan@xxxxxxxxxxxx> > > Thanks. > > What is the normal path for CAN patches? Should I resend with your > Ack and without the RFC for Marc to pick it up? You can add my: Acked-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> add upstream the 2038 fixes as a block. Marc -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
Attachment:
signature.asc
Description: OpenPGP digital signature