Bumps the kernel 4.14.246 and addresses recent linux-libre kernel issues [1].
[1] https://www.fsfla.org/pipermail/linux-libre/2021-August/003439.html
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-4.14 = .238
-
+LINUX_VERSION-4.14 = .246
+LIBRE_REV = 1
LINUX_KERNEL_HASH-4.14.238 = e1c6ed86040fb7e2009c1b88a87201058919d0b172858f17a85f800be7ac7251
-
+LINUX_KERNEL_HASH-4.14.246 = 43a2bd7b69af6f37b9bb1677850ec2cb3d54aacbb8f275895c8d2a9e3a3ada18
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
LINUX_KERNEL:=$(KERNEL_BUILD_DIR)/vmlinux
ifneq (,$(findstring -rc,$(LINUX_VERSION)))
- LINUX_SOURCE:=linux-libre-$(LINUX_VERSION)-gnu.tar.gz
+ LINUX_SOURCE:=linux-libre-$(LINUX_VERSION)-gnu$(LIBRE_REV).tar.gz
else
- LINUX_SOURCE:=linux-libre-$(LINUX_VERSION)-gnu.tar.xz
+ LINUX_SOURCE:=linux-libre-$(LINUX_VERSION)-gnu$(LIBRE_REV).tar.xz
endif
ifneq (,$(findstring -rc,$(LINUX_VERSION)))
LINUX_SITE:=
else ifeq ($(call qstrip,$(CONFIG_EXTERNAL_KERNEL_TREE))$(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)),)
- LINUX_SITE:=@KERNEL_LIBRE/$(LINUX_VERSION)-gnu$(TESTING)
+ LINUX_SITE:=@KERNEL_LIBRE/$(LINUX_VERSION)-gnu$(LIBRE_REV)$(TESTING)
else
LINUX_UNAME_VERSION:=$(strip $(shell cat $(LINUX_DIR)/include/config/kernel.release 2>/dev/null))
endif
$(STAGING_DIR_HOST)/bin/mkhash: $(SCRIPT_DIR)/mkhash.c
mkdir -p $(dir $@)
- $(CC) -O2 -I$(TOPDIR)/tools/include -o $@ $<
+ $(CC) -I$(TOPDIR)/tools/include -o $@ $<
prereq: $(STAGING_DIR_HOST)/bin/mkhash
#include <linux/uaccess.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
-@@ -819,10 +820,10 @@ static void tcp_v6_send_response(const s
+@@ -835,10 +836,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1);
if (tsecr) {
* Before updating sk_refcnt, we must commit prior changes to memory
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
-@@ -1700,7 +1700,7 @@ u32 tcp_tso_autosize(const struct sock *
+@@ -1701,7 +1701,7 @@ u32 tcp_tso_autosize(const struct sock *
{
u32 bytes, segs;
sk->sk_gso_max_size - 1 - MAX_TCP_HEADER);
/* Goal is to send at least one packet per ms,
-@@ -2218,7 +2218,7 @@ static bool tcp_small_queue_check(struct
+@@ -2219,7 +2219,7 @@ static bool tcp_small_queue_check(struct
{
unsigned int limit;
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
-@@ -2028,7 +2028,8 @@ static const struct usb_device_id option
+@@ -2033,7 +2033,8 @@ static const struct usb_device_id option
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
};
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
-@@ -975,6 +975,9 @@ static unsigned int early_drop_list(stru
+@@ -980,6 +980,9 @@ static unsigned int early_drop_list(stru
hlist_nulls_for_each_entry_rcu(h, n, head, hnnode) {
tmp = nf_ct_tuplehash_to_ctrack(h);
if (nf_ct_is_expired(tmp)) {
nf_ct_gc_expired(tmp);
continue;
-@@ -1052,6 +1055,18 @@ static bool gc_worker_can_early_drop(con
+@@ -1057,6 +1060,18 @@ static bool gc_worker_can_early_drop(con
return false;
}
static void gc_worker(struct work_struct *work)
{
unsigned int min_interval = max(HZ / GC_MAX_BUCKETS_DIV, 1u);
-@@ -1088,6 +1103,11 @@ static void gc_worker(struct work_struct
+@@ -1093,6 +1108,11 @@ static void gc_worker(struct work_struct
tmp = nf_ct_tuplehash_to_ctrack(h);
scanned++;
expired_count++;
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
-@@ -1125,6 +1125,14 @@ static const struct nla_policy ct_nla_po
+@@ -1128,6 +1128,14 @@ static const struct nla_policy ct_nla_po
.len = NF_CT_LABELS_MAX_SIZE },
};
static int ctnetlink_flush_conntrack(struct net *net,
const struct nlattr * const cda[],
u32 portid, int report)
-@@ -1137,7 +1145,7 @@ static int ctnetlink_flush_conntrack(str
+@@ -1140,7 +1148,7 @@ static int ctnetlink_flush_conntrack(str
return PTR_ERR(filter);
}
portid, report);
kfree(filter);
-@@ -1183,6 +1191,11 @@ static int ctnetlink_del_conntrack(struc
+@@ -1186,6 +1194,11 @@ static int ctnetlink_del_conntrack(struc
ct = nf_ct_tuplehash_to_ctrack(h);
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
-@@ -1055,18 +1055,6 @@ static bool gc_worker_can_early_drop(con
+@@ -1060,18 +1060,6 @@ static bool gc_worker_can_early_drop(con
return false;
}
static void gc_worker(struct work_struct *work)
{
unsigned int min_interval = max(HZ / GC_MAX_BUCKETS_DIV, 1u);
-@@ -1103,10 +1091,8 @@ static void gc_worker(struct work_struct
+@@ -1108,10 +1096,8 @@ static void gc_worker(struct work_struct
tmp = nf_ct_tuplehash_to_ctrack(h);
scanned++;
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_RT5033 is not set
# CONFIG_BATTERY_GOLDFISH is not set
# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
/*
* Data section helpers
-@@ -500,7 +501,7 @@
+@@ -501,7 +502,7 @@
#define ENTRY_TEXT \
ALIGN_FUNCTION(); \
VMLINUX_SYMBOL(__entry_text_start) = .; \
VMLINUX_SYMBOL(__entry_text_end) = .;
#define IRQENTRY_TEXT \
-@@ -607,7 +608,7 @@
+@@ -608,7 +609,7 @@
. = ALIGN(sbss_align); \
.sbss : AT(ADDR(.sbss) - LOAD_OFFSET) { \
*(.dynsbss) \
} \
\
/* __*init sections */ \
-@@ -804,6 +814,8 @@
+@@ -805,6 +815,8 @@
EXIT_TEXT \
EXIT_DATA \
EXIT_CALL \
Support for PF_PACKET sockets monitoring interface used by the ss tool.
--- a/net/unix/Kconfig
+++ b/net/unix/Kconfig
-@@ -22,6 +22,7 @@ config UNIX
+@@ -27,6 +27,7 @@ config UNIX_SCM
config UNIX_DIAG
tristate "UNIX: socket monitoring interface"
depends on UNIX
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
-@@ -670,8 +670,10 @@ char *symbol_string(char *buf, char *end
+@@ -696,8 +696,10 @@ char *symbol_string(char *buf, char *end
struct printf_spec spec, const char *fmt)
{
unsigned long value;
#endif
if (fmt[1] == 'R')
-@@ -685,11 +687,16 @@ char *symbol_string(char *buf, char *end
+@@ -711,11 +713,16 @@ char *symbol_string(char *buf, char *end
sprint_symbol(sym, value);
else
sprint_symbol_no_offset(sym, value);
#define PPP_VERSION "2.4.2"
/*
-@@ -1382,12 +1387,37 @@ static void ppp_dev_priv_destructor(stru
+@@ -1393,12 +1398,37 @@ static void ppp_dev_priv_destructor(stru
ppp_destroy_interface(ppp);
}
__u16 tc_index; /* traffic control index */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4802,6 +4802,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4803,6 +4803,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
if (netif_elide_gro(skb->dev))
goto normal;
-@@ -6280,6 +6283,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -6288,6 +6291,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info)
-@@ -6318,6 +6363,7 @@ static int __netdev_upper_dev_link(struc
+@@ -6326,6 +6371,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
ret = notifier_to_errno(ret);
-@@ -6395,6 +6441,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -6403,6 +6449,7 @@ void netdev_upper_dev_unlink(struct net_
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
}
-@@ -6959,6 +7006,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6967,6 +7014,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;