mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-31 06:36:41 +00:00
Merge pull request #5932 from heitbaum/kernel11
linux: update to 5.15.y
This commit is contained in:
commit
216778f550
@ -3,8 +3,8 @@
|
|||||||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||||
|
|
||||||
PKG_NAME="RTL8192DU"
|
PKG_NAME="RTL8192DU"
|
||||||
PKG_VERSION="331ec03d89d0c0ebe771c4011846f029f6af33d3"
|
PKG_VERSION="6e6d6fc16b21d5ff200ec1122dd009c8c01ab61d"
|
||||||
PKG_SHA256="74e173b96d366ad50a0634fe98a8e55dc865276cd07de8fd635eaa4d5f71dae4"
|
PKG_SHA256="c91f4907adebe5f9474b8477334230d0dadd3feb376ca6f44b5a74ffac02605f"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="https://github.com/lwfinger/rtl8192du"
|
PKG_SITE="https://github.com/lwfinger/rtl8192du"
|
||||||
PKG_URL="https://github.com/lwfinger/rtl8192du/archive/${PKG_VERSION}.tar.gz"
|
PKG_URL="https://github.com/lwfinger/rtl8192du/archive/${PKG_VERSION}.tar.gz"
|
||||||
|
@ -1,61 +0,0 @@
|
|||||||
--- a/core/rtw_br_ext.c 2021-10-10 13:28:28.410328649 +1100
|
|
||||||
+++ b/core/rtw_br_ext.c 2021-10-10 13:28:28.410328649 +1100
|
|
||||||
@@ -22,7 +22,10 @@
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
#include <linux/if_arp.h>
|
|
||||||
#include <net/ip.h>
|
|
||||||
+#include <linux/version.h>
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0)
|
|
||||||
#include <net/ipx.h>
|
|
||||||
+#endif
|
|
||||||
#include <linux/atalk.h>
|
|
||||||
#include <linux/udp.h>
|
|
||||||
#include <linux/if_pppox.h>
|
|
||||||
@@ -175,6 +175,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+#ifdef _NET_INET_IPX_H_
|
|
||||||
static __inline__ void __nat25_generate_ipx_network_addr_with_node(unsigned char *networkAddr,
|
|
||||||
unsigned int *ipxNetAddr, unsigned char *ipxNodeAddr)
|
|
||||||
{
|
|
||||||
@@ -195,6 +196,7 @@
|
|
||||||
memcpy(networkAddr+1, (unsigned char *)ipxNetAddr, 4);
|
|
||||||
memcpy(networkAddr+5, (unsigned char *)ipxSocketAddr, 2);
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
|
|
||||||
static __inline__ void __nat25_generate_apple_network_addr(unsigned char *networkAddr,
|
|
||||||
@@ -341,6 +343,7 @@
|
|
||||||
|
|
||||||
return x & (NAT25_HASH_SIZE - 1);
|
|
||||||
}
|
|
||||||
+#ifdef _NET_INET_IPX_H_
|
|
||||||
else if(networkAddr[0] == NAT25_IPX)
|
|
||||||
{
|
|
||||||
unsigned long x;
|
|
||||||
@@ -350,6 +353,7 @@
|
|
||||||
|
|
||||||
return x & (NAT25_HASH_SIZE - 1);
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
else if(networkAddr[0] == NAT25_APPLE)
|
|
||||||
{
|
|
||||||
unsigned long x;
|
|
||||||
@@ -932,6 +936,7 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+#ifdef _NET_INET_IPX_H_
|
|
||||||
/*---------------------------------------------------*/
|
|
||||||
/* Handle IPX and Apple Talk frame */
|
|
||||||
/*---------------------------------------------------*/
|
|
||||||
@@ -1195,6 +1200,7 @@
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/*---------------------------------------------------*/
|
|
||||||
/* Handle PPPoE frame */
|
|
@ -28,8 +28,8 @@ case "${LINUX}" in
|
|||||||
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
|
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
PKG_VERSION="5.15.5"
|
PKG_VERSION="5.15.8"
|
||||||
PKG_SHA256="e9565a301525ac81c142ceb832f9053dd5685e107dbcf753d0de4c58bc98851f"
|
PKG_SHA256="d756527313ee09c8b0376975fb7890e2eddce9714967504093b2c0fab5c0f3bd"
|
||||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v5.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
PKG_URL="https://www.kernel.org/pub/linux/kernel/v5.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||||
PKG_PATCH_DIRS="default"
|
PKG_PATCH_DIRS="default"
|
||||||
;;
|
;;
|
||||||
|
@ -1,135 +0,0 @@
|
|||||||
From 678d92b6126b9f55419b6a51ef0a88bce2ef2f20 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Arnd Bergmann <arnd@arndb.de>
|
|
||||||
Date: Tue, 26 Oct 2021 06:49:54 +0100
|
|
||||||
Subject: media: v4l2-core: fix VIDIOC_DQEVENT handling on non-x86
|
|
||||||
|
|
||||||
My previous bugfix addressed an API inconsistency found by syzbot,
|
|
||||||
and it correctly fixed the issue on x86-64 machines, which now behave
|
|
||||||
correctly for both native and compat tasks.
|
|
||||||
|
|
||||||
Unfortunately, John found that the patch broke compat mode on all other
|
|
||||||
architectures, as they can no longer rely on the VIDIOC_DQEVENT_TIME32
|
|
||||||
code from the native handler as a fallback in the compat code.
|
|
||||||
|
|
||||||
The best way I can see for addressing this is to generalize the
|
|
||||||
VIDIOC_DQEVENT32_TIME32 code from x86 and use that for all architectures,
|
|
||||||
leaving only the VIDIOC_DQEVENT32 variant as x86 specific. The original
|
|
||||||
code was trying to be clever and use the same conversion helper for native
|
|
||||||
32-bit code and compat mode, but that turned out to be too obscure so
|
|
||||||
even I missed that bit I had introduced myself when I made the fix.
|
|
||||||
|
|
||||||
Fixes: c344f07aa1b4 ("media: v4l2-core: ignore native time32 ioctls on 64-bit")
|
|
||||||
Reported-by: John Stultz <john.stultz@linaro.org>
|
|
||||||
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
||||||
Tested-by: John Stultz <john.stultz@linaro.org>
|
|
||||||
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
|
||||||
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
|
|
||||||
---
|
|
||||||
drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 41 +++++++++++----------------
|
|
||||||
1 file changed, 17 insertions(+), 24 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
|
|
||||||
index 8176769a89fa4..0f3d6b5667b07 100644
|
|
||||||
--- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
|
|
||||||
+++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
|
|
||||||
@@ -751,10 +751,6 @@ static int put_v4l2_ext_controls32(struct v4l2_ext_controls *p64,
|
|
||||||
/*
|
|
||||||
* x86 is the only compat architecture with different struct alignment
|
|
||||||
* between 32-bit and 64-bit tasks.
|
|
||||||
- *
|
|
||||||
- * On all other architectures, v4l2_event32 and v4l2_event32_time32 are
|
|
||||||
- * the same as v4l2_event and v4l2_event_time32, so we can use the native
|
|
||||||
- * handlers, converting v4l2_event to v4l2_event_time32 if necessary.
|
|
||||||
*/
|
|
||||||
struct v4l2_event32 {
|
|
||||||
__u32 type;
|
|
||||||
@@ -772,21 +768,6 @@ struct v4l2_event32 {
|
|
||||||
__u32 reserved[8];
|
|
||||||
};
|
|
||||||
|
|
||||||
-#ifdef CONFIG_COMPAT_32BIT_TIME
|
|
||||||
-struct v4l2_event32_time32 {
|
|
||||||
- __u32 type;
|
|
||||||
- union {
|
|
||||||
- compat_s64 value64;
|
|
||||||
- __u8 data[64];
|
|
||||||
- } u;
|
|
||||||
- __u32 pending;
|
|
||||||
- __u32 sequence;
|
|
||||||
- struct old_timespec32 timestamp;
|
|
||||||
- __u32 id;
|
|
||||||
- __u32 reserved[8];
|
|
||||||
-};
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
static int put_v4l2_event32(struct v4l2_event *p64,
|
|
||||||
struct v4l2_event32 __user *p32)
|
|
||||||
{
|
|
||||||
@@ -802,7 +783,22 @@ static int put_v4l2_event32(struct v4l2_event *p64,
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#ifdef CONFIG_COMPAT_32BIT_TIME
|
|
||||||
+struct v4l2_event32_time32 {
|
|
||||||
+ __u32 type;
|
|
||||||
+ union {
|
|
||||||
+ compat_s64 value64;
|
|
||||||
+ __u8 data[64];
|
|
||||||
+ } u;
|
|
||||||
+ __u32 pending;
|
|
||||||
+ __u32 sequence;
|
|
||||||
+ struct old_timespec32 timestamp;
|
|
||||||
+ __u32 id;
|
|
||||||
+ __u32 reserved[8];
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static int put_v4l2_event32_time32(struct v4l2_event *p64,
|
|
||||||
struct v4l2_event32_time32 __user *p32)
|
|
||||||
{
|
|
||||||
@@ -818,7 +814,6 @@ static int put_v4l2_event32_time32(struct v4l2_event *p64,
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
struct v4l2_edid32 {
|
|
||||||
__u32 pad;
|
|
||||||
@@ -880,9 +875,7 @@ static int put_v4l2_edid32(struct v4l2_edid *p64,
|
|
||||||
#define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
|
|
||||||
#define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
|
|
||||||
#define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
|
|
||||||
-#ifdef CONFIG_X86_64
|
|
||||||
#define VIDIOC_DQEVENT32_TIME32 _IOR ('V', 89, struct v4l2_event32_time32)
|
|
||||||
-#endif
|
|
||||||
#define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -936,10 +929,10 @@ unsigned int v4l2_compat_translate_cmd(unsigned int cmd)
|
|
||||||
#ifdef CONFIG_X86_64
|
|
||||||
case VIDIOC_DQEVENT32:
|
|
||||||
return VIDIOC_DQEVENT;
|
|
||||||
+#endif
|
|
||||||
#ifdef CONFIG_COMPAT_32BIT_TIME
|
|
||||||
case VIDIOC_DQEVENT32_TIME32:
|
|
||||||
return VIDIOC_DQEVENT;
|
|
||||||
-#endif
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
return cmd;
|
|
||||||
@@ -1032,10 +1025,10 @@ int v4l2_compat_put_user(void __user *arg, void *parg, unsigned int cmd)
|
|
||||||
#ifdef CONFIG_X86_64
|
|
||||||
case VIDIOC_DQEVENT32:
|
|
||||||
return put_v4l2_event32(parg, arg);
|
|
||||||
+#endif
|
|
||||||
#ifdef CONFIG_COMPAT_32BIT_TIME
|
|
||||||
case VIDIOC_DQEVENT32_TIME32:
|
|
||||||
return put_v4l2_event32_time32(parg, arg);
|
|
||||||
-#endif
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
--
|
|
||||||
cgit 1.2.3-1.el7
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user