mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-02 01:18:08 +01:00
Ever since an old patch version, it has (for reasonable security reasons) not supported patched with ../ in the filename. Many of our patches have been relying on this behaviour being OK, because we start off with an ancient patch version that didn't perform such checks. As soon as we need this behaviour after we build a newer patch though, we will have problems. So, let's change the policy. Patches are relative to where tarballs are extracted, rather than the "working directory" - e.g. have patches for `coreutils-9.4/src/cp.c` instead of `src/cp.c`. Keeping this consistent has a few implications; - patches are applied from the build/ directory in bash era now, with `-p0` - when patches are manually applied in the bash era, use `-p` as required, usually `-p1` - in kaem era where patches are always manually applied, `-p1` is used
447 lines
16 KiB
Diff
447 lines
16 KiB
Diff
SPDX-FileCopyrightText: 1991-2024 kernel.org contributors
|
|
SPDX-FileCopyrightText: 2023-2024 Open Enterprise Linux Association <kernel-lts@openela.org>
|
|
|
|
SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
Patch kernel headers up to 4.14.341-openela
|
|
|
|
diff --git include/crypto/if_alg.h include/crypto/if_alg.h
|
|
index 2ea6a95ca825..f803dc8c45ad 100644
|
|
--- linux-4.14.336/include/crypto/if_alg.h
|
|
+++ linux-4.14.336/include/crypto/if_alg.h
|
|
@@ -146,6 +146,7 @@ struct af_alg_async_req {
|
|
* @enc: Cryptographic operation to be performed when
|
|
* recvmsg is invoked.
|
|
* @len: Length of memory allocated for this data structure.
|
|
+ * @inflight: Non-zero when AIO requests are in flight.
|
|
*/
|
|
struct af_alg_ctx {
|
|
struct list_head tsgl_list;
|
|
@@ -163,6 +164,8 @@ struct af_alg_ctx {
|
|
bool enc;
|
|
|
|
unsigned int len;
|
|
+
|
|
+ unsigned int inflight;
|
|
};
|
|
|
|
int af_alg_register_type(const struct af_alg_type *type);
|
|
diff --git include/drm/drm_bridge.h include/drm/drm_bridge.h
|
|
index 6522d4cbc9d9..bfbd38c0b609 100644
|
|
--- linux-4.14.336/include/drm/drm_bridge.h
|
|
+++ linux-4.14.336/include/drm/drm_bridge.h
|
|
@@ -161,7 +161,7 @@ struct drm_bridge_funcs {
|
|
* or &drm_encoder_helper_funcs.dpms hook.
|
|
*
|
|
* The bridge must assume that the display pipe (i.e. clocks and timing
|
|
- * singals) feeding it is no longer running when this callback is
|
|
+ * signals) feeding it is no longer running when this callback is
|
|
* called.
|
|
*
|
|
* The post_disable callback is optional.
|
|
diff --git include/drm/drm_mipi_dsi.h include/drm/drm_mipi_dsi.h
|
|
index 689f615471ab..a059f1d968b7 100644
|
|
--- linux-4.14.336/include/drm/drm_mipi_dsi.h
|
|
+++ linux-4.14.336/include/drm/drm_mipi_dsi.h
|
|
@@ -163,6 +163,7 @@ struct mipi_dsi_device_info {
|
|
* struct mipi_dsi_device - DSI peripheral device
|
|
* @host: DSI host for this peripheral
|
|
* @dev: driver model device node for this peripheral
|
|
+ * @attached: the DSI device has been successfully attached
|
|
* @name: DSI peripheral chip type
|
|
* @channel: virtual channel assigned to the peripheral
|
|
* @format: pixel format for video mode
|
|
@@ -172,6 +173,7 @@ struct mipi_dsi_device_info {
|
|
struct mipi_dsi_device {
|
|
struct mipi_dsi_host *host;
|
|
struct device dev;
|
|
+ bool attached;
|
|
|
|
char name[DSI_DEV_NAME_SIZE];
|
|
unsigned int channel;
|
|
diff --git include/linux/bpf.h include/linux/bpf.h
|
|
index 3aa05ea79ba1..0d7a61df056b 100644
|
|
--- linux-4.14.336/include/linux/bpf.h
|
|
+++ linux-4.14.336/include/linux/bpf.h
|
|
@@ -38,7 +38,11 @@ struct bpf_map_ops {
|
|
/* funcs called by prog_array and perf_event_array map */
|
|
void *(*map_fd_get_ptr)(struct bpf_map *map, struct file *map_file,
|
|
int fd);
|
|
- void (*map_fd_put_ptr)(void *ptr);
|
|
+ /* If need_defer is true, the implementation should guarantee that
|
|
+ * the to-be-put element is still alive before the bpf program, which
|
|
+ * may manipulate it, exists.
|
|
+ */
|
|
+ void (*map_fd_put_ptr)(struct bpf_map *map, void *ptr, bool need_defer);
|
|
u32 (*map_gen_lookup)(struct bpf_map *map, struct bpf_insn *insn_buf);
|
|
u32 (*map_fd_sys_lookup_elem)(void *ptr);
|
|
};
|
|
diff --git include/linux/device.h include/linux/device.h
|
|
index 65e06a066b67..27b70b810463 100644
|
|
--- linux-4.14.336/include/linux/device.h
|
|
+++ linux-4.14.336/include/linux/device.h
|
|
@@ -1474,6 +1474,9 @@ do { \
|
|
WARN_ONCE(condition, "%s %s: " format, \
|
|
dev_driver_string(dev), dev_name(dev), ## arg)
|
|
|
|
+extern __printf(3, 4)
|
|
+int dev_err_probe(const struct device *dev, int err, const char *fmt, ...);
|
|
+
|
|
/* Create alias, so I can be autoloaded. */
|
|
#define MODULE_ALIAS_CHARDEV(major,minor) \
|
|
MODULE_ALIAS("char-major-" __stringify(major) "-" __stringify(minor))
|
|
diff --git include/linux/dmaengine.h include/linux/dmaengine.h
|
|
index 8089e28539f1..d5a7d320e05c 100644
|
|
--- linux-4.14.336/include/linux/dmaengine.h
|
|
+++ linux-4.14.336/include/linux/dmaengine.h
|
|
@@ -816,7 +816,8 @@ static inline int dmaengine_slave_config(struct dma_chan *chan,
|
|
|
|
static inline bool is_slave_direction(enum dma_transfer_direction direction)
|
|
{
|
|
- return (direction == DMA_MEM_TO_DEV) || (direction == DMA_DEV_TO_MEM);
|
|
+ return (direction == DMA_MEM_TO_DEV) || (direction == DMA_DEV_TO_MEM) ||
|
|
+ (direction == DMA_DEV_TO_DEV);
|
|
}
|
|
|
|
static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single(
|
|
diff --git include/linux/fs.h include/linux/fs.h
|
|
index ff0a992846a3..bd6072556269 100644
|
|
--- linux-4.14.336/include/linux/fs.h
|
|
+++ linux-4.14.336/include/linux/fs.h
|
|
@@ -296,6 +296,8 @@ enum rw_hint {
|
|
#define IOCB_SYNC (1 << 5)
|
|
#define IOCB_WRITE (1 << 6)
|
|
#define IOCB_NOWAIT (1 << 7)
|
|
+/* kiocb is a read or write operation submitted by fs/aio.c. */
|
|
+#define IOCB_AIO_RW (1 << 23)
|
|
|
|
struct kiocb {
|
|
struct file *ki_filp;
|
|
diff --git include/linux/lsm_hooks.h include/linux/lsm_hooks.h
|
|
index 569debc49f3d..28ff40daccff 100644
|
|
--- linux-4.14.336/include/linux/lsm_hooks.h
|
|
+++ linux-4.14.336/include/linux/lsm_hooks.h
|
|
@@ -466,6 +466,12 @@
|
|
* simple integer value. When @arg represents a user space pointer, it
|
|
* should never be used by the security module.
|
|
* Return 0 if permission is granted.
|
|
+ * @file_ioctl_compat:
|
|
+ * @file contains the file structure.
|
|
+ * @cmd contains the operation to perform.
|
|
+ * @arg contains the operational arguments.
|
|
+ * Check permission for a compat ioctl operation on @file.
|
|
+ * Return 0 if permission is granted.
|
|
* @mmap_addr :
|
|
* Check permissions for a mmap operation at @addr.
|
|
* @addr contains virtual address that will be used for the operation.
|
|
@@ -1486,6 +1492,8 @@ union security_list_options {
|
|
void (*file_free_security)(struct file *file);
|
|
int (*file_ioctl)(struct file *file, unsigned int cmd,
|
|
unsigned long arg);
|
|
+ int (*file_ioctl_compat)(struct file *file, unsigned int cmd,
|
|
+ unsigned long arg);
|
|
int (*mmap_addr)(unsigned long addr);
|
|
int (*mmap_file)(struct file *file, unsigned long reqprot,
|
|
unsigned long prot, unsigned long flags);
|
|
@@ -1764,6 +1772,7 @@ struct security_hook_heads {
|
|
struct list_head file_alloc_security;
|
|
struct list_head file_free_security;
|
|
struct list_head file_ioctl;
|
|
+ struct list_head file_ioctl_compat;
|
|
struct list_head mmap_addr;
|
|
struct list_head mmap_file;
|
|
struct list_head file_mprotect;
|
|
diff --git include/linux/pci_ids.h include/linux/pci_ids.h
|
|
index 83f576d45d78..c977e636a1dd 100644
|
|
--- linux-4.14.336/include/linux/pci_ids.h
|
|
+++ linux-4.14.336/include/linux/pci_ids.h
|
|
@@ -2953,6 +2953,7 @@
|
|
#define PCI_DEVICE_ID_INTEL_82443GX_0 0x71a0
|
|
#define PCI_DEVICE_ID_INTEL_82443GX_2 0x71a2
|
|
#define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601
|
|
+#define PCI_DEVICE_ID_INTEL_HDA_ARL 0x7728
|
|
#define PCI_DEVICE_ID_INTEL_SCH_LPC 0x8119
|
|
#define PCI_DEVICE_ID_INTEL_SCH_IDE 0x811a
|
|
#define PCI_DEVICE_ID_INTEL_E6XX_CU 0x8183
|
|
diff --git include/linux/security.h include/linux/security.h
|
|
index 1c8968a267c2..cf77cd971795 100644
|
|
--- linux-4.14.336/include/linux/security.h
|
|
+++ linux-4.14.336/include/linux/security.h
|
|
@@ -306,6 +306,8 @@ int security_file_permission(struct file *file, int mask);
|
|
int security_file_alloc(struct file *file);
|
|
void security_file_free(struct file *file);
|
|
int security_file_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
|
|
+int security_file_ioctl_compat(struct file *file, unsigned int cmd,
|
|
+ unsigned long arg);
|
|
int security_mmap_file(struct file *file, unsigned long prot,
|
|
unsigned long flags);
|
|
int security_mmap_addr(unsigned long addr);
|
|
@@ -827,6 +829,13 @@ static inline int security_file_ioctl(struct file *file, unsigned int cmd,
|
|
return 0;
|
|
}
|
|
|
|
+static inline int security_file_ioctl_compat(struct file *file,
|
|
+ unsigned int cmd,
|
|
+ unsigned long arg)
|
|
+{
|
|
+ return 0;
|
|
+}
|
|
+
|
|
static inline int security_mmap_file(struct file *file, unsigned long prot,
|
|
unsigned long flags)
|
|
{
|
|
diff --git include/linux/spi/spi.h include/linux/spi/spi.h
|
|
index a8f6606dd498..5c7741ca3b99 100644
|
|
--- linux-4.14.336/include/linux/spi/spi.h
|
|
+++ linux-4.14.336/include/linux/spi/spi.h
|
|
@@ -153,6 +153,7 @@ struct spi_device {
|
|
#define SPI_MODE_1 (0|SPI_CPHA)
|
|
#define SPI_MODE_2 (SPI_CPOL|0)
|
|
#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA)
|
|
+#define SPI_MODE_X_MASK (SPI_CPOL|SPI_CPHA)
|
|
#define SPI_CS_HIGH 0x04 /* chipselect active high? */
|
|
#define SPI_LSB_FIRST 0x08 /* per-word bits-on-wire */
|
|
#define SPI_3WIRE 0x10 /* SI/SO signals shared */
|
|
diff --git include/linux/units.h include/linux/units.h
|
|
new file mode 100644
|
|
index 000000000000..a0af6d2ef4e5
|
|
--- /dev/null
|
|
+++ linux-4.14.336/include/linux/units.h
|
|
@@ -0,0 +1,92 @@
|
|
+/* SPDX-License-Identifier: GPL-2.0 */
|
|
+#ifndef _LINUX_UNITS_H
|
|
+#define _LINUX_UNITS_H
|
|
+
|
|
+#include <linux/kernel.h>
|
|
+
|
|
+#define HZ_PER_KHZ 1000UL
|
|
+#define KHZ_PER_MHZ 1000UL
|
|
+#define HZ_PER_MHZ 1000000UL
|
|
+
|
|
+#define MILLIWATT_PER_WATT 1000UL
|
|
+#define MICROWATT_PER_MILLIWATT 1000UL
|
|
+#define MICROWATT_PER_WATT 1000000UL
|
|
+
|
|
+#define ABSOLUTE_ZERO_MILLICELSIUS -273150
|
|
+
|
|
+static inline long milli_kelvin_to_millicelsius(long t)
|
|
+{
|
|
+ return t + ABSOLUTE_ZERO_MILLICELSIUS;
|
|
+}
|
|
+
|
|
+static inline long millicelsius_to_milli_kelvin(long t)
|
|
+{
|
|
+ return t - ABSOLUTE_ZERO_MILLICELSIUS;
|
|
+}
|
|
+
|
|
+#define MILLIDEGREE_PER_DEGREE 1000
|
|
+#define MILLIDEGREE_PER_DECIDEGREE 100
|
|
+
|
|
+static inline long kelvin_to_millicelsius(long t)
|
|
+{
|
|
+ return milli_kelvin_to_millicelsius(t * MILLIDEGREE_PER_DEGREE);
|
|
+}
|
|
+
|
|
+static inline long millicelsius_to_kelvin(long t)
|
|
+{
|
|
+ t = millicelsius_to_milli_kelvin(t);
|
|
+
|
|
+ return DIV_ROUND_CLOSEST(t, MILLIDEGREE_PER_DEGREE);
|
|
+}
|
|
+
|
|
+static inline long deci_kelvin_to_celsius(long t)
|
|
+{
|
|
+ t = milli_kelvin_to_millicelsius(t * MILLIDEGREE_PER_DECIDEGREE);
|
|
+
|
|
+ return DIV_ROUND_CLOSEST(t, MILLIDEGREE_PER_DEGREE);
|
|
+}
|
|
+
|
|
+static inline long celsius_to_deci_kelvin(long t)
|
|
+{
|
|
+ t = millicelsius_to_milli_kelvin(t * MILLIDEGREE_PER_DEGREE);
|
|
+
|
|
+ return DIV_ROUND_CLOSEST(t, MILLIDEGREE_PER_DECIDEGREE);
|
|
+}
|
|
+
|
|
+/**
|
|
+ * deci_kelvin_to_millicelsius_with_offset - convert Kelvin to Celsius
|
|
+ * @t: temperature value in decidegrees Kelvin
|
|
+ * @offset: difference between Kelvin and Celsius in millidegrees
|
|
+ *
|
|
+ * Return: temperature value in millidegrees Celsius
|
|
+ */
|
|
+static inline long deci_kelvin_to_millicelsius_with_offset(long t, long offset)
|
|
+{
|
|
+ return t * MILLIDEGREE_PER_DECIDEGREE - offset;
|
|
+}
|
|
+
|
|
+static inline long deci_kelvin_to_millicelsius(long t)
|
|
+{
|
|
+ return milli_kelvin_to_millicelsius(t * MILLIDEGREE_PER_DECIDEGREE);
|
|
+}
|
|
+
|
|
+static inline long millicelsius_to_deci_kelvin(long t)
|
|
+{
|
|
+ t = millicelsius_to_milli_kelvin(t);
|
|
+
|
|
+ return DIV_ROUND_CLOSEST(t, MILLIDEGREE_PER_DECIDEGREE);
|
|
+}
|
|
+
|
|
+static inline long kelvin_to_celsius(long t)
|
|
+{
|
|
+ return t + DIV_ROUND_CLOSEST(ABSOLUTE_ZERO_MILLICELSIUS,
|
|
+ MILLIDEGREE_PER_DEGREE);
|
|
+}
|
|
+
|
|
+static inline long celsius_to_kelvin(long t)
|
|
+{
|
|
+ return t - DIV_ROUND_CLOSEST(ABSOLUTE_ZERO_MILLICELSIUS,
|
|
+ MILLIDEGREE_PER_DEGREE);
|
|
+}
|
|
+
|
|
+#endif /* _LINUX_UNITS_H */
|
|
diff --git include/net/af_unix.h include/net/af_unix.h
|
|
index 7ec1cdb66be8..e514508bdc92 100644
|
|
--- linux-4.14.336/include/net/af_unix.h
|
|
+++ linux-4.14.336/include/net/af_unix.h
|
|
@@ -43,12 +43,6 @@ struct unix_skb_parms {
|
|
|
|
#define UNIXCB(skb) (*(struct unix_skb_parms *)&((skb)->cb))
|
|
|
|
-#define unix_state_lock(s) spin_lock(&unix_sk(s)->lock)
|
|
-#define unix_state_unlock(s) spin_unlock(&unix_sk(s)->lock)
|
|
-#define unix_state_lock_nested(s) \
|
|
- spin_lock_nested(&unix_sk(s)->lock, \
|
|
- SINGLE_DEPTH_NESTING)
|
|
-
|
|
/* The AF_UNIX socket */
|
|
struct unix_sock {
|
|
/* WARNING: sk has to be the first member */
|
|
@@ -72,6 +66,20 @@ static inline struct unix_sock *unix_sk(const struct sock *sk)
|
|
return (struct unix_sock *)sk;
|
|
}
|
|
|
|
+#define unix_state_lock(s) spin_lock(&unix_sk(s)->lock)
|
|
+#define unix_state_unlock(s) spin_unlock(&unix_sk(s)->lock)
|
|
+enum unix_socket_lock_class {
|
|
+ U_LOCK_NORMAL,
|
|
+ U_LOCK_SECOND, /* for double locking, see unix_state_double_lock(). */
|
|
+ U_LOCK_DIAG, /* used while dumping icons, see sk_diag_dump_icons(). */
|
|
+};
|
|
+
|
|
+static inline void unix_state_lock_nested(struct sock *sk,
|
|
+ enum unix_socket_lock_class subclass)
|
|
+{
|
|
+ spin_lock_nested(&unix_sk(sk)->lock, subclass);
|
|
+}
|
|
+
|
|
#define peer_wait peer_wq.wait
|
|
|
|
long unix_inq_len(struct sock *sk);
|
|
diff --git include/net/bluetooth/hci_core.h include/net/bluetooth/hci_core.h
|
|
index 8f899ad4a754..bac3d79139b2 100644
|
|
--- linux-4.14.336/include/net/bluetooth/hci_core.h
|
|
+++ linux-4.14.336/include/net/bluetooth/hci_core.h
|
|
@@ -647,7 +647,6 @@ void hci_inquiry_cache_flush(struct hci_dev *hdev);
|
|
/* ----- linux-4.14.336/HCI Connections ----- */
|
|
enum {
|
|
HCI_CONN_AUTH_PEND,
|
|
- HCI_CONN_REAUTH_PEND,
|
|
HCI_CONN_ENCRYPT_PEND,
|
|
HCI_CONN_RSWITCH_PEND,
|
|
HCI_CONN_MODE_CHANGE_PEND,
|
|
diff --git include/net/dst_ops.h include/net/dst_ops.h
|
|
index 443863c7b8da..632086b2f644 100644
|
|
--- linux-4.14.336/include/net/dst_ops.h
|
|
+++ linux-4.14.336/include/net/dst_ops.h
|
|
@@ -16,7 +16,7 @@ struct dst_ops {
|
|
unsigned short family;
|
|
unsigned int gc_thresh;
|
|
|
|
- int (*gc)(struct dst_ops *ops);
|
|
+ void (*gc)(struct dst_ops *ops);
|
|
struct dst_entry * (*check)(struct dst_entry *, __u32 cookie);
|
|
unsigned int (*default_advmss)(const struct dst_entry *);
|
|
unsigned int (*mtu)(const struct dst_entry *);
|
|
@@ -53,9 +53,11 @@ static inline int dst_entries_get_slow(struct dst_ops *dst)
|
|
return percpu_counter_sum_positive(&dst->pcpuc_entries);
|
|
}
|
|
|
|
+#define DST_PERCPU_COUNTER_BATCH 32
|
|
static inline void dst_entries_add(struct dst_ops *dst, int val)
|
|
{
|
|
- percpu_counter_add(&dst->pcpuc_entries, val);
|
|
+ percpu_counter_add_batch(&dst->pcpuc_entries, val,
|
|
+ DST_PERCPU_COUNTER_BATCH);
|
|
}
|
|
|
|
static inline int dst_entries_init(struct dst_ops *dst)
|
|
diff --git include/net/llc_pdu.h include/net/llc_pdu.h
|
|
index 49aa79c7b278..581cd37aa98b 100644
|
|
--- linux-4.14.336/include/net/llc_pdu.h
|
|
+++ linux-4.14.336/include/net/llc_pdu.h
|
|
@@ -262,8 +262,7 @@ static inline void llc_pdu_header_init(struct sk_buff *skb, u8 type,
|
|
*/
|
|
static inline void llc_pdu_decode_sa(struct sk_buff *skb, u8 *sa)
|
|
{
|
|
- if (skb->protocol == htons(ETH_P_802_2))
|
|
- memcpy(sa, eth_hdr(skb)->h_source, ETH_ALEN);
|
|
+ memcpy(sa, eth_hdr(skb)->h_source, ETH_ALEN);
|
|
}
|
|
|
|
/**
|
|
@@ -275,8 +274,7 @@ static inline void llc_pdu_decode_sa(struct sk_buff *skb, u8 *sa)
|
|
*/
|
|
static inline void llc_pdu_decode_da(struct sk_buff *skb, u8 *da)
|
|
{
|
|
- if (skb->protocol == htons(ETH_P_802_2))
|
|
- memcpy(da, eth_hdr(skb)->h_dest, ETH_ALEN);
|
|
+ memcpy(da, eth_hdr(skb)->h_dest, ETH_ALEN);
|
|
}
|
|
|
|
/**
|
|
diff --git include/net/netns/ipv6.h include/net/netns/ipv6.h
|
|
index c004d051c2d3..290ca18589ee 100644
|
|
--- linux-4.14.336/include/net/netns/ipv6.h
|
|
+++ linux-4.14.336/include/net/netns/ipv6.h
|
|
@@ -64,8 +64,8 @@ struct netns_ipv6 {
|
|
struct dst_ops ip6_dst_ops;
|
|
rwlock_t fib6_walker_lock;
|
|
spinlock_t fib6_gc_lock;
|
|
- unsigned int ip6_rt_gc_expire;
|
|
- unsigned long ip6_rt_last_gc;
|
|
+ atomic_t ip6_rt_gc_expire;
|
|
+ unsigned long ip6_rt_last_gc;
|
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
|
bool fib6_has_custom_rules;
|
|
struct rt6_info *ip6_prohibit_entry;
|
|
diff --git include/uapi/linux/btrfs.h include/uapi/linux/btrfs.h
|
|
index 86d2a52b4665..ee7a34c237a5 100644
|
|
--- linux-4.14.336/include/uapi/linux/btrfs.h
|
|
+++ linux-4.14.336/include/uapi/linux/btrfs.h
|
|
@@ -522,6 +522,9 @@ struct btrfs_ioctl_clone_range_args {
|
|
*/
|
|
#define BTRFS_DEFRAG_RANGE_COMPRESS 1
|
|
#define BTRFS_DEFRAG_RANGE_START_IO 2
|
|
+#define BTRFS_DEFRAG_RANGE_FLAGS_SUPP (BTRFS_DEFRAG_RANGE_COMPRESS | \
|
|
+ BTRFS_DEFRAG_RANGE_START_IO)
|
|
+
|
|
struct btrfs_ioctl_defrag_range_args {
|
|
/* start of the defrag operation */
|
|
__u64 start;
|
|
diff --git include/uapi/linux/netfilter/nf_tables.h include/uapi/linux/netfilter/nf_tables.h
|
|
index c7bb18ea4962..835e9f345f35 100644
|
|
--- linux-4.14.336/include/uapi/linux/netfilter/nf_tables.h
|
|
+++ linux-4.14.336/include/uapi/linux/netfilter/nf_tables.h
|
|
@@ -229,9 +229,11 @@ enum nft_rule_attributes {
|
|
/**
|
|
* enum nft_rule_compat_flags - nf_tables rule compat flags
|
|
*
|
|
+ * @NFT_RULE_COMPAT_F_UNUSED: unused
|
|
* @NFT_RULE_COMPAT_F_INV: invert the check result
|
|
*/
|
|
enum nft_rule_compat_flags {
|
|
+ NFT_RULE_COMPAT_F_UNUSED = (1 << 0),
|
|
NFT_RULE_COMPAT_F_INV = (1 << 1),
|
|
NFT_RULE_COMPAT_F_MASK = NFT_RULE_COMPAT_F_INV,
|
|
};
|