Files
operating-system/buildroot-external/package/eq3_char_loop/0002-version1_1.patch
Jens Maus 97dffedbcd Add a buildroot utils/check-package linter check to pr-checks.yml (#1523)
Add buildroot utils/check-package check to the pr-checks.yml workflow.
It checks for common errors/mistakes when creating own buildroot
packages. Also fixed all warnings this utility output for our existing packages.
2021-09-04 10:46:55 +02:00

114 lines
3.6 KiB
Diff

KernelDrivers/eq3_char_loop.c: updated to latest 1.1 version
Signed-off-by: Jens Maus <mail@jens-maus.de>
--- ./KernelDrivers/eq3_char_loop.c.orig 2017-05-14 22:57:19.109181928 +0200
+++ ./KernelDrivers/eq3_char_loop.c 2020-06-04 14:36:10.188174788 +0200
@@ -48,8 +48,8 @@
/* Use 'L' as magic number */
#define EQ3LOOP_IOC_MAGIC 'L'
-#define EQ3LOOP_IOCSCREATESLAVE _IOW(EQ3LOOP_IOC_MAGIC, 1, unsigned long)
-#define EQ3LOOP_IOCGEVENTS _IOR(EQ3LOOP_IOC_MAGIC, 2, unsigned long)
+#define EQ3LOOP_IOCSCREATESLAVE _IOW(EQ3LOOP_IOC_MAGIC, 1, uint32_t)
+#define EQ3LOOP_IOCGEVENTS _IOR(EQ3LOOP_IOC_MAGIC, 2, uint32_t)
#define EVENT_BIT_SLAVE_OPENED 0
#define EVENT_BIT_SLAVE_CLOSED 1
@@ -62,6 +62,12 @@
#define DUMP_READWRITE 0
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
+ #define _access_ok(__type, __addr, __size) access_ok(__addr, __size)
+#else
+ #define _access_ok(__type, __addr, __size) access_ok(__type, __addr, __size)
+#endif
+
struct eq3loop_channel_data
{
struct circ_buf master2slave_buf;
@@ -353,7 +359,7 @@
{
ret=-EFAULT;
count_to_end = CIRC_SPACE( head, channel->master2slave_buf.tail, BUFSIZE);
- printk( KERN_ERR EQ3LOOP_DRIVER_NAME ": eq3loop_write_master() %s: not enought space in the buffers. free space = %i, required space = %i", channel->name,count_to_end,count );
+ printk( KERN_ERR EQ3LOOP_DRIVER_NAME ": eq3loop_write_master() %s: not enough space in buffers. free space = %zu, required space = %zu", channel->name,count_to_end,count );
goto out;
}
/* ok, space is free, write something */
@@ -389,7 +395,7 @@
up (&channel->sem);
if(ret < 0)
{
- printk( KERN_INFO EQ3LOOP_DRIVER_NAME ": eq3loop_write_master() retrun error:");
+ printk( KERN_INFO EQ3LOOP_DRIVER_NAME ": eq3loop_write_master() return error: %d", ret);
}
if( ret > 0 || CIRC_CNT(channel->master2slave_buf.head,channel->master2slave_buf.tail,BUFSIZE) )
{
@@ -456,9 +462,9 @@
* "write" is reversed
*/
if (_IOC_DIR(cmd) & _IOC_READ)
- ret = !access_ok(VERIFY_WRITE, (void *)arg, _IOC_SIZE(cmd));
+ ret = !_access_ok(VERIFY_WRITE, (void *)arg, _IOC_SIZE(cmd));
else if (_IOC_DIR(cmd) & _IOC_WRITE)
- ret = !access_ok(VERIFY_READ, (void *)arg, _IOC_SIZE(cmd));
+ ret = !_access_ok(VERIFY_READ, (void *)arg, _IOC_SIZE(cmd));
if (ret) return -EFAULT;
switch(cmd) {
@@ -500,7 +506,7 @@
switch(cmd) {
case TCGETS:
- if( access_ok(VERIFY_READ, (void *)arg, sizeof(struct termios) ) )
+ if( _access_ok(VERIFY_READ, (void *)arg, sizeof(struct termios) ) )
{
ret = copy_to_user( (void*)arg, &channel->termios, sizeof(struct termios) );
} else {
@@ -508,7 +514,7 @@
}
break;
case TCSETS:
- if( access_ok(VERIFY_WRITE, (void *)arg, sizeof(struct termios) ) )
+ if( _access_ok(VERIFY_WRITE, (void *)arg, sizeof(struct termios) ) )
{
ret = copy_from_user( &channel->termios, (void*)arg, sizeof(struct termios) );
} else {
@@ -533,6 +539,12 @@
break;
case TIOCMSET:
break;
+ case TIOCSERGETLSR:
+ ret = -ENOIOCTLCMD;
+ break;
+ case TIOCGICOUNT:
+ ret = -ENOIOCTLCMD;
+ break;
default:
ret = -ENOTTY;
break;
@@ -541,6 +553,7 @@
if( ret == -ENOTTY )
{
printk( KERN_NOTICE EQ3LOOP_DRIVER_NAME ": eq3loop_ioctl_slave() %s: unhandled ioctl 0x%04X\n", channel->name, cmd );
+ ret = -ENOIOCTLCMD;
}
return ret;
}
@@ -908,6 +921,7 @@
.ioctl = eq3loop_ioctl,
#else
.unlocked_ioctl = eq3loop_ioctl,
+ .compat_ioctl = eq3loop_ioctl,
#endif
};
@@ -979,4 +993,4 @@
module_exit(eq3loop_exit);
MODULE_DESCRIPTION("eQ-3 IPC loopback char driver");
MODULE_LICENSE("GPL");
-
+MODULE_VERSION("1.1");