Skip to contentSkip to conversation

CAN: Fix plain integer definitions in userspace header & new CAN version 20071227

PATCH In review Oliver Hartkopp 2 participants 6 messages Dec 27, 2007 – Dec 28, 2007

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 CAN: Fix plain integer definitions in userspace header & new CAN version 20071227

This patch fixes the use of plain integers instead of __u32 in a struct that is visible from kernel space and user space. As this change is user visible this patch also updates the CAN version to 20071227.

Thanks to Sam Ravnborg for pointing out the wrong plain int usage.

It applies on the current net-2.6.25 tree.

Tnx & best regards,
Oliver

---

net2625-2007-12-27/include/linux/can/bcm.h renamed from include/linux/can/bcm.h +4 -4
diff -uprN -X net-2.6.25/Documentation/dontdiff net-2.6.25/include/linux/can/bcm.h export/net2625-2007-12-27/include/linux/can/bcm.h
@@ -26,12 +26,12 @@
  * @frames:    array of CAN frames.
  */
 struct bcm_msg_head {
-	int opcode;
-	int flags;
-	int count;
+	__u32 opcode;
+	__u32 flags;
+	__u32 count;
 	struct timeval ival1, ival2;
 	canid_t can_id;
-	int nframes;
+	__u32 nframes;
 	struct can_frame frames[0];
 };
 
net2625-2007-12-27/include/linux/can/core.h renamed from include/linux/can/core.h +1 -1
diff -uprN -X net-2.6.25/Documentation/dontdiff net-2.6.25/include/linux/can/core.h export/net2625-2007-12-27/include/linux/can/core.h
@@ -19,7 +19,7 @@
 #include <linux/skbuff.h>
 #include <linux/netdevice.h>
 
-#define CAN_VERSION "20071116"
+#define CAN_VERSION "20071227"
 
 /* increment this number each time you change some user-space interface */
 #define CAN_ABI_VERSION "8"
maintainer
#1 lore raw

From: Oliver Hartkopp <[email protected]>
Date: Thu, 27 Dec 2007 21:14:57 +0100

Quoted 7 lines

This patch fixes the use of plain integers instead of __u32 in a struct that is visible from kernel space and user space. As this change is user visible this patch also updates the CAN version to 20071227.

Thanks to Sam Ravnborg for pointing out the wrong plain int usage.

It applies on the current net-2.6.25 tree.

The types are exactly the same size regardless of anything.

There is no reason to make such a big fuss about this, changing the CAN version etc.

Also, since CAN has never shown up in a released kernel, there is nothing to be incompatible with.

Finally, once CAN is in fact in a released kernel, you can't make incompatible changes to the userland visible structures. They are going to be fixed in stone.

Therefore I'm going to check this in without all the version changes.

Thanks.

maintainer
#4 lore raw
In reply to Oliver Hartkopp

From: Oliver Hartkopp <[email protected]>
Date: Thu, 27 Dec 2007 21:14:57 +0100

net2625-2007-12-27/include/linux/can/bcm.h

Quoted 3 lines

diff -uprN -X net-2.6.25/Documentation/dontdiff net-2.6.25/include/linux/can/bcm.h export/net2625-2007-12-27/include/linux/can/bcm.h

net2625-2007-12-27/include/linux/can/bcm.h renamed from include/linux/can/bcm.h +0 -0

Also, please properly root your patches in the future:

davem@sunset:~/src/GIT/net-2.6.25$ git apply --check --whitespace=error-all diff
error: net2625-2007-12-27/include/linux/can/bcm.h: No such file or directory

Thanks.

#5 lore raw
Quoted 11 lines · David Miller

From: Oliver Hartkopp <[email protected]>
Date: Thu, 27 Dec 2007 21:14:57 +0100

net2625-2007-12-27/include/linux/can/bcm.h

Quoted 4 lines

diff -uprN -X net-2.6.25/Documentation/dontdiff net-2.6.25/include/linux/can/bcm.h export/net2625-2007-12-27/include/linux/can/bcm.h

net2625-2007-12-27/include/linux/can/bcm.h renamed from include/linux/can/bcm.h +0 -0

Also, please properly root your patches in the future:

Quoted 4 lines
davem@sunset:~/src/GIT/net-2.6.25$ git apply --check --whitespace=error-all diff
error: net2625-2007-12-27/include/linux/can/bcm.h: No such file or directory

I was just testing the patch with 'patch -p1 < ... ' but after your error message i recognized why my patch was faulty as the paths had a different root depth. Tnx for the hint. Such a mistake will not happen again.

Thanks,
Oliver

#2 lore raw
In reply to David Miller
Quoted 11 lines · David Miller

From: Oliver Hartkopp <[email protected]>
Date: Thu, 27 Dec 2007 21:14:57 +0100

Quoted 6 lines

This patch fixes the use of plain integers instead of __u32 in a struct that is visible from kernel space and user space. As this change is user visible this patch also updates the CAN version to 20071227.

Thanks to Sam Ravnborg for pointing out the wrong plain int usage.

It applies on the current net-2.6.25 tree.

Quoted 8 lines

The types are exactly the same size regardless of anything.

There is no reason to make such a big fuss about this, changing the CAN version etc.

Also, since CAN has never shown up in a released kernel, there is nothing to be incompatible with.

The CAN stuff is also available in the 'SocketCAN' SVN for older 2.6 Kernels and i backported the latest code to Kernel 2.4 two weeks ago as some people still use it. As a change in bcm.h is user visable i just wanted to freeze the latest version of the header files into a consistent CAN version for Mainline, older 2.6 and 2.4 Kernels. That was the reason for creating version 20071227 *before* it hits a released Kernel.

Thanks
Oliver

#3 lore raw
Quoted 6 lines · Oliver Hartkopp
Quoted 5 lines · David Miller

The types are exactly the same size regardless of anything.

There is no reason to make such a big fuss about this, changing the CAN version etc.

Btw. you are perfectly right with your remark. I'll revert the CAN version in the SocketCAN SVN back to 20071116 which is in net-2.6.25.

Sorry for the noise.

Oliver