Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Conflicting commits, all resolutions pretty trivial: drivers/bus/mhi/pci_generic.c5c2c853159("bus: mhi: pci-generic: configurable network interface MRU")56f6f4c4eb("bus: mhi: pci_generic: Apply no-op for wake using sideband wake boolean") drivers/nfc/s3fwrn5/firmware.ca0302ff590("nfc: s3fwrn5: remove unnecessary label")46573e3ab0("nfc: s3fwrn5: fix undefined parameter values in dev_err()")801e541c79("nfc: s3fwrn5: fix undefined parameter values in dev_err()") MAINTAINERS7d901a1e87("net: phy: add Maxlinear GPY115/21x/24x driver")8a7b46fa79("MAINTAINERS: add Yasushi SHOJI as reviewer for the Microchip CAN BUS Analyzer Tool driver") Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
d2e11fd2b7
426 changed files with 4470 additions and 2569 deletions
|
|
@ -57,7 +57,7 @@ struct blk_keyslot_manager;
|
|||
* Maximum number of blkcg policies allowed to be registered concurrently.
|
||||
* Defined here to simplify include dependency.
|
||||
*/
|
||||
#define BLKCG_MAX_POLS 5
|
||||
#define BLKCG_MAX_POLS 6
|
||||
|
||||
typedef void (rq_end_io_fn)(struct request *, blk_status_t);
|
||||
|
||||
|
|
|
|||
|
|
@ -134,4 +134,5 @@ BPF_LINK_TYPE(BPF_LINK_TYPE_CGROUP, cgroup)
|
|||
BPF_LINK_TYPE(BPF_LINK_TYPE_ITER, iter)
|
||||
#ifdef CONFIG_NET
|
||||
BPF_LINK_TYPE(BPF_LINK_TYPE_NETNS, netns)
|
||||
BPF_LINK_TYPE(BPF_LINK_TYPE_XDP, xdp)
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -354,8 +354,8 @@ struct bpf_insn_aux_data {
|
|||
};
|
||||
u64 map_key_state; /* constant (32 bit) key tracking for maps */
|
||||
int ctx_field_size; /* the ctx field size for load insn, maybe 0 */
|
||||
int sanitize_stack_off; /* stack slot to be cleared */
|
||||
u32 seen; /* this insn was processed by the verifier at env->pass_cnt */
|
||||
bool sanitize_stack_spill; /* subject to Spectre v4 sanitation */
|
||||
bool zext_dst; /* this insn zero extends dst reg */
|
||||
u8 alu_state; /* used in combination with alu_limit */
|
||||
|
||||
|
|
@ -429,6 +429,7 @@ struct bpf_verifier_env {
|
|||
u32 used_map_cnt; /* number of used maps */
|
||||
u32 used_btf_cnt; /* number of used BTF objects */
|
||||
u32 id_gen; /* used to generate unique reg IDs */
|
||||
bool explore_alu_limits;
|
||||
bool allow_ptr_leaks;
|
||||
bool allow_uninit_stack;
|
||||
bool allow_ptr_to_map_access;
|
||||
|
|
|
|||
|
|
@ -73,6 +73,11 @@ struct ctl_table_header;
|
|||
/* unused opcode to mark call to interpreter with arguments */
|
||||
#define BPF_CALL_ARGS 0xe0
|
||||
|
||||
/* unused opcode to mark speculation barrier for mitigating
|
||||
* Speculative Store Bypass
|
||||
*/
|
||||
#define BPF_NOSPEC 0xc0
|
||||
|
||||
/* As per nm, we expose JITed images as text (code) section for
|
||||
* kallsyms. That way, tools like perf can find it to match
|
||||
* addresses.
|
||||
|
|
@ -390,6 +395,16 @@ static inline bool insn_is_zext(const struct bpf_insn *insn)
|
|||
.off = 0, \
|
||||
.imm = 0 })
|
||||
|
||||
/* Speculation barrier */
|
||||
|
||||
#define BPF_ST_NOSPEC() \
|
||||
((struct bpf_insn) { \
|
||||
.code = BPF_ST | BPF_NOSPEC, \
|
||||
.dst_reg = 0, \
|
||||
.src_reg = 0, \
|
||||
.off = 0, \
|
||||
.imm = 0 })
|
||||
|
||||
/* Internal classic blocks for direct assignment */
|
||||
|
||||
#define __BPF_STMT(CODE, K) \
|
||||
|
|
|
|||
|
|
@ -141,6 +141,7 @@ extern int vfs_get_tree(struct fs_context *fc);
|
|||
extern void put_fs_context(struct fs_context *fc);
|
||||
extern int vfs_parse_fs_param_source(struct fs_context *fc,
|
||||
struct fs_parameter *param);
|
||||
extern void fc_drop_locked(struct fs_context *fc);
|
||||
|
||||
/*
|
||||
* sget() wrappers to be called from the ->get_tree() op.
|
||||
|
|
|
|||
|
|
@ -318,14 +318,16 @@ static inline void memcpy_to_page(struct page *page, size_t offset,
|
|||
|
||||
VM_BUG_ON(offset + len > PAGE_SIZE);
|
||||
memcpy(to + offset, from, len);
|
||||
flush_dcache_page(page);
|
||||
kunmap_local(to);
|
||||
}
|
||||
|
||||
static inline void memzero_page(struct page *page, size_t offset, size_t len)
|
||||
{
|
||||
char *addr = kmap_atomic(page);
|
||||
char *addr = kmap_local_page(page);
|
||||
memset(addr + offset, 0, len);
|
||||
kunmap_atomic(addr);
|
||||
flush_dcache_page(page);
|
||||
kunmap_local(addr);
|
||||
}
|
||||
|
||||
#endif /* _LINUX_HIGHMEM_H */
|
||||
|
|
|
|||
|
|
@ -81,6 +81,8 @@ int ishtp_register_event_cb(struct ishtp_cl_device *device,
|
|||
|
||||
/* Get the device * from ishtp device instance */
|
||||
struct device *ishtp_device(struct ishtp_cl_device *cl_device);
|
||||
/* wait for IPC resume */
|
||||
bool ishtp_wait_resume(struct ishtp_device *dev);
|
||||
/* Trace interface for clients */
|
||||
ishtp_print_log ishtp_trace_callback(struct ishtp_cl_device *cl_device);
|
||||
/* Get device pointer of PCI device for DMA acces */
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@ static inline void __next_physmem_range(u64 *idx, struct memblock_type *type,
|
|||
*/
|
||||
#define for_each_mem_range(i, p_start, p_end) \
|
||||
__for_each_mem_range(i, &memblock.memory, NULL, NUMA_NO_NODE, \
|
||||
MEMBLOCK_NONE, p_start, p_end, NULL)
|
||||
MEMBLOCK_HOTPLUG, p_start, p_end, NULL)
|
||||
|
||||
/**
|
||||
* for_each_mem_range_rev - reverse iterate through memblock areas from
|
||||
|
|
@ -220,7 +220,7 @@ static inline void __next_physmem_range(u64 *idx, struct memblock_type *type,
|
|||
*/
|
||||
#define for_each_mem_range_rev(i, p_start, p_end) \
|
||||
__for_each_mem_range_rev(i, &memblock.memory, NULL, NUMA_NO_NODE, \
|
||||
MEMBLOCK_NONE, p_start, p_end, NULL)
|
||||
MEMBLOCK_HOTPLUG, p_start, p_end, NULL)
|
||||
|
||||
/**
|
||||
* for_each_reserved_mem_range - iterate over all reserved memblock areas
|
||||
|
|
|
|||
|
|
@ -285,11 +285,45 @@ static inline struct sk_psock *sk_psock(const struct sock *sk)
|
|||
return rcu_dereference_sk_user_data(sk);
|
||||
}
|
||||
|
||||
static inline void sk_psock_set_state(struct sk_psock *psock,
|
||||
enum sk_psock_state_bits bit)
|
||||
{
|
||||
set_bit(bit, &psock->state);
|
||||
}
|
||||
|
||||
static inline void sk_psock_clear_state(struct sk_psock *psock,
|
||||
enum sk_psock_state_bits bit)
|
||||
{
|
||||
clear_bit(bit, &psock->state);
|
||||
}
|
||||
|
||||
static inline bool sk_psock_test_state(const struct sk_psock *psock,
|
||||
enum sk_psock_state_bits bit)
|
||||
{
|
||||
return test_bit(bit, &psock->state);
|
||||
}
|
||||
|
||||
static inline void sock_drop(struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
sk_drops_add(sk, skb);
|
||||
kfree_skb(skb);
|
||||
}
|
||||
|
||||
static inline void drop_sk_msg(struct sk_psock *psock, struct sk_msg *msg)
|
||||
{
|
||||
if (msg->skb)
|
||||
sock_drop(psock->sk, msg->skb);
|
||||
kfree(msg);
|
||||
}
|
||||
|
||||
static inline void sk_psock_queue_msg(struct sk_psock *psock,
|
||||
struct sk_msg *msg)
|
||||
{
|
||||
spin_lock_bh(&psock->ingress_lock);
|
||||
list_add_tail(&msg->list, &psock->ingress_msg);
|
||||
if (sk_psock_test_state(psock, SK_PSOCK_TX_ENABLED))
|
||||
list_add_tail(&msg->list, &psock->ingress_msg);
|
||||
else
|
||||
drop_sk_msg(psock, msg);
|
||||
spin_unlock_bh(&psock->ingress_lock);
|
||||
}
|
||||
|
||||
|
|
@ -406,24 +440,6 @@ static inline void sk_psock_restore_proto(struct sock *sk,
|
|||
psock->psock_update_sk_prot(sk, psock, true);
|
||||
}
|
||||
|
||||
static inline void sk_psock_set_state(struct sk_psock *psock,
|
||||
enum sk_psock_state_bits bit)
|
||||
{
|
||||
set_bit(bit, &psock->state);
|
||||
}
|
||||
|
||||
static inline void sk_psock_clear_state(struct sk_psock *psock,
|
||||
enum sk_psock_state_bits bit)
|
||||
{
|
||||
clear_bit(bit, &psock->state);
|
||||
}
|
||||
|
||||
static inline bool sk_psock_test_state(const struct sk_psock *psock,
|
||||
enum sk_psock_state_bits bit)
|
||||
{
|
||||
return test_bit(bit, &psock->state);
|
||||
}
|
||||
|
||||
static inline struct sk_psock *sk_psock_get(struct sock *sk)
|
||||
{
|
||||
struct sk_psock *psock;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue