Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Merge conflict of mlx5 resolved using instructions in merge
commit 9566e650bf.
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
446bf64b61
549 changed files with 4710 additions and 2902 deletions
|
|
@ -19,9 +19,24 @@
|
|||
|
||||
#define p4d_alloc(mm, pgd, address) (pgd)
|
||||
#define p4d_offset(pgd, start) (pgd)
|
||||
#define p4d_none(p4d) 0
|
||||
#define p4d_bad(p4d) 0
|
||||
#define p4d_present(p4d) 1
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
static inline int p4d_none(p4d_t p4d)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int p4d_bad(p4d_t p4d)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int p4d_present(p4d_t p4d)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
#define p4d_ERROR(p4d) do { } while (0)
|
||||
#define p4d_clear(p4d) pgd_clear(p4d)
|
||||
#define p4d_val(p4d) pgd_val(p4d)
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ struct kvm_pmu {
|
|||
u64 kvm_pmu_get_counter_value(struct kvm_vcpu *vcpu, u64 select_idx);
|
||||
void kvm_pmu_set_counter_value(struct kvm_vcpu *vcpu, u64 select_idx, u64 val);
|
||||
u64 kvm_pmu_valid_counter_mask(struct kvm_vcpu *vcpu);
|
||||
void kvm_pmu_vcpu_init(struct kvm_vcpu *vcpu);
|
||||
void kvm_pmu_vcpu_reset(struct kvm_vcpu *vcpu);
|
||||
void kvm_pmu_vcpu_destroy(struct kvm_vcpu *vcpu);
|
||||
void kvm_pmu_disable_counter_mask(struct kvm_vcpu *vcpu, u64 val);
|
||||
|
|
@ -71,6 +72,7 @@ static inline u64 kvm_pmu_valid_counter_mask(struct kvm_vcpu *vcpu)
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
static inline void kvm_pmu_vcpu_init(struct kvm_vcpu *vcpu) {}
|
||||
static inline void kvm_pmu_vcpu_reset(struct kvm_vcpu *vcpu) {}
|
||||
static inline void kvm_pmu_vcpu_destroy(struct kvm_vcpu *vcpu) {}
|
||||
static inline void kvm_pmu_disable_counter_mask(struct kvm_vcpu *vcpu, u64 val) {}
|
||||
|
|
|
|||
|
|
@ -350,6 +350,7 @@ int kvm_vgic_vcpu_pending_irq(struct kvm_vcpu *vcpu);
|
|||
|
||||
void kvm_vgic_load(struct kvm_vcpu *vcpu);
|
||||
void kvm_vgic_put(struct kvm_vcpu *vcpu);
|
||||
void kvm_vgic_vmcr_sync(struct kvm_vcpu *vcpu);
|
||||
|
||||
#define irqchip_in_kernel(k) (!!((k)->arch.vgic.in_kernel))
|
||||
#define vgic_initialized(k) ((k)->arch.vgic.initialized)
|
||||
|
|
|
|||
|
|
@ -311,7 +311,6 @@ enum req_flag_bits {
|
|||
__REQ_RAHEAD, /* read ahead, can fail anytime */
|
||||
__REQ_BACKGROUND, /* background IO */
|
||||
__REQ_NOWAIT, /* Don't wait if request will block */
|
||||
__REQ_NOWAIT_INLINE, /* Return would-block error inline */
|
||||
/*
|
||||
* When a shared kthread needs to issue a bio for a cgroup, doing
|
||||
* so synchronously can lead to priority inversions as the kthread
|
||||
|
|
@ -346,7 +345,6 @@ enum req_flag_bits {
|
|||
#define REQ_RAHEAD (1ULL << __REQ_RAHEAD)
|
||||
#define REQ_BACKGROUND (1ULL << __REQ_BACKGROUND)
|
||||
#define REQ_NOWAIT (1ULL << __REQ_NOWAIT)
|
||||
#define REQ_NOWAIT_INLINE (1ULL << __REQ_NOWAIT_INLINE)
|
||||
#define REQ_CGROUP_PUNT (1ULL << __REQ_CGROUP_PUNT)
|
||||
|
||||
#define REQ_NOUNMAP (1ULL << __REQ_NOUNMAP)
|
||||
|
|
@ -420,13 +418,12 @@ static inline int op_stat_group(unsigned int op)
|
|||
|
||||
typedef unsigned int blk_qc_t;
|
||||
#define BLK_QC_T_NONE -1U
|
||||
#define BLK_QC_T_EAGAIN -2U
|
||||
#define BLK_QC_T_SHIFT 16
|
||||
#define BLK_QC_T_INTERNAL (1U << 31)
|
||||
|
||||
static inline bool blk_qc_t_valid(blk_qc_t cookie)
|
||||
{
|
||||
return cookie != BLK_QC_T_NONE && cookie != BLK_QC_T_EAGAIN;
|
||||
return cookie != BLK_QC_T_NONE;
|
||||
}
|
||||
|
||||
static inline unsigned int blk_qc_t_to_queue_num(blk_qc_t cookie)
|
||||
|
|
|
|||
|
|
@ -170,6 +170,8 @@ struct ccp_aes_engine {
|
|||
enum ccp_aes_mode mode;
|
||||
enum ccp_aes_action action;
|
||||
|
||||
u32 authsize;
|
||||
|
||||
struct scatterlist *key;
|
||||
u32 key_len; /* In bytes */
|
||||
|
||||
|
|
|
|||
|
|
@ -42,13 +42,18 @@ void arch_dma_free(struct device *dev, size_t size, void *cpu_addr,
|
|||
dma_addr_t dma_addr, unsigned long attrs);
|
||||
long arch_dma_coherent_to_pfn(struct device *dev, void *cpu_addr,
|
||||
dma_addr_t dma_addr);
|
||||
|
||||
#ifdef CONFIG_ARCH_HAS_DMA_MMAP_PGPROT
|
||||
pgprot_t arch_dma_mmap_pgprot(struct device *dev, pgprot_t prot,
|
||||
unsigned long attrs);
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
pgprot_t dma_pgprot(struct device *dev, pgprot_t prot, unsigned long attrs);
|
||||
#else
|
||||
# define arch_dma_mmap_pgprot(dev, prot, attrs) pgprot_noncached(prot)
|
||||
#endif
|
||||
static inline pgprot_t dma_pgprot(struct device *dev, pgprot_t prot,
|
||||
unsigned long attrs)
|
||||
{
|
||||
return prot; /* no protection bits supported without page tables */
|
||||
}
|
||||
#endif /* CONFIG_MMU */
|
||||
|
||||
#ifdef CONFIG_DMA_NONCOHERENT_CACHE_SYNC
|
||||
void arch_dma_cache_sync(struct device *dev, void *vaddr, size_t size,
|
||||
|
|
|
|||
|
|
@ -510,22 +510,18 @@ alloc_pages(gfp_t gfp_mask, unsigned int order)
|
|||
}
|
||||
extern struct page *alloc_pages_vma(gfp_t gfp_mask, int order,
|
||||
struct vm_area_struct *vma, unsigned long addr,
|
||||
int node, bool hugepage);
|
||||
#define alloc_hugepage_vma(gfp_mask, vma, addr, order) \
|
||||
alloc_pages_vma(gfp_mask, order, vma, addr, numa_node_id(), true)
|
||||
int node);
|
||||
#else
|
||||
#define alloc_pages(gfp_mask, order) \
|
||||
alloc_pages_node(numa_node_id(), gfp_mask, order)
|
||||
#define alloc_pages_vma(gfp_mask, order, vma, addr, node, false)\
|
||||
alloc_pages(gfp_mask, order)
|
||||
#define alloc_hugepage_vma(gfp_mask, vma, addr, order) \
|
||||
#define alloc_pages_vma(gfp_mask, order, vma, addr, node)\
|
||||
alloc_pages(gfp_mask, order)
|
||||
#endif
|
||||
#define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0)
|
||||
#define alloc_page_vma(gfp_mask, vma, addr) \
|
||||
alloc_pages_vma(gfp_mask, 0, vma, addr, numa_node_id(), false)
|
||||
alloc_pages_vma(gfp_mask, 0, vma, addr, numa_node_id())
|
||||
#define alloc_page_vma_node(gfp_mask, vma, addr, node) \
|
||||
alloc_pages_vma(gfp_mask, 0, vma, addr, node, false)
|
||||
alloc_pages_vma(gfp_mask, 0, vma, addr, node)
|
||||
|
||||
extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order);
|
||||
extern unsigned long get_zeroed_page(gfp_t gfp_mask);
|
||||
|
|
|
|||
|
|
@ -94,11 +94,11 @@ struct keyring_index_key {
|
|||
union {
|
||||
struct {
|
||||
#ifdef __LITTLE_ENDIAN /* Put desc_len at the LSB of x */
|
||||
u8 desc_len;
|
||||
char desc[sizeof(long) - 1]; /* First few chars of description */
|
||||
u16 desc_len;
|
||||
char desc[sizeof(long) - 2]; /* First few chars of description */
|
||||
#else
|
||||
char desc[sizeof(long) - 1]; /* First few chars of description */
|
||||
u8 desc_len;
|
||||
char desc[sizeof(long) - 2]; /* First few chars of description */
|
||||
u16 desc_len;
|
||||
#endif
|
||||
};
|
||||
unsigned long x;
|
||||
|
|
|
|||
|
|
@ -861,8 +861,9 @@ int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu);
|
|||
void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu);
|
||||
void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu);
|
||||
|
||||
bool kvm_arch_has_vcpu_debugfs(void);
|
||||
int kvm_arch_create_vcpu_debugfs(struct kvm_vcpu *vcpu);
|
||||
#ifdef __KVM_HAVE_ARCH_VCPU_DEBUGFS
|
||||
void kvm_arch_create_vcpu_debugfs(struct kvm_vcpu *vcpu);
|
||||
#endif
|
||||
|
||||
int kvm_arch_hardware_enable(void);
|
||||
void kvm_arch_hardware_disable(void);
|
||||
|
|
@ -872,6 +873,7 @@ int kvm_arch_check_processor_compat(void);
|
|||
int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu);
|
||||
bool kvm_arch_vcpu_in_kernel(struct kvm_vcpu *vcpu);
|
||||
int kvm_arch_vcpu_should_kick(struct kvm_vcpu *vcpu);
|
||||
bool kvm_arch_dy_runnable(struct kvm_vcpu *vcpu);
|
||||
|
||||
#ifndef __KVM_HAVE_ARCH_VM_ALLOC
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -668,6 +668,7 @@ static inline unsigned long lruvec_page_state_local(struct lruvec *lruvec,
|
|||
|
||||
void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx,
|
||||
int val);
|
||||
void __mod_lruvec_slab_state(void *p, enum node_stat_item idx, int val);
|
||||
|
||||
static inline void mod_lruvec_state(struct lruvec *lruvec,
|
||||
enum node_stat_item idx, int val)
|
||||
|
|
@ -1072,6 +1073,14 @@ static inline void mod_lruvec_page_state(struct page *page,
|
|||
mod_node_page_state(page_pgdat(page), idx, val);
|
||||
}
|
||||
|
||||
static inline void __mod_lruvec_slab_state(void *p, enum node_stat_item idx,
|
||||
int val)
|
||||
{
|
||||
struct page *page = virt_to_head_page(p);
|
||||
|
||||
__mod_node_page_state(page_pgdat(page), idx, val);
|
||||
}
|
||||
|
||||
static inline
|
||||
unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order,
|
||||
gfp_t gfp_mask,
|
||||
|
|
@ -1159,6 +1168,16 @@ static inline void __dec_lruvec_page_state(struct page *page,
|
|||
__mod_lruvec_page_state(page, idx, -1);
|
||||
}
|
||||
|
||||
static inline void __inc_lruvec_slab_state(void *p, enum node_stat_item idx)
|
||||
{
|
||||
__mod_lruvec_slab_state(p, idx, 1);
|
||||
}
|
||||
|
||||
static inline void __dec_lruvec_slab_state(void *p, enum node_stat_item idx)
|
||||
{
|
||||
__mod_lruvec_slab_state(p, idx, -1);
|
||||
}
|
||||
|
||||
/* idx can be of type enum memcg_stat_item or node_stat_item */
|
||||
static inline void inc_memcg_state(struct mem_cgroup *memcg,
|
||||
int idx)
|
||||
|
|
|
|||
|
|
@ -139,6 +139,8 @@ struct mempolicy *mpol_shared_policy_lookup(struct shared_policy *sp,
|
|||
struct mempolicy *get_task_policy(struct task_struct *p);
|
||||
struct mempolicy *__get_vma_policy(struct vm_area_struct *vma,
|
||||
unsigned long addr);
|
||||
struct mempolicy *get_vma_policy(struct vm_area_struct *vma,
|
||||
unsigned long addr);
|
||||
bool vma_policy_mof(struct vm_area_struct *vma);
|
||||
|
||||
extern void numa_default_policy(void);
|
||||
|
|
|
|||
|
|
@ -446,11 +446,11 @@ enum {
|
|||
};
|
||||
|
||||
enum {
|
||||
MLX5_OPC_MOD_TLS_TIS_STATIC_PARAMS = 0x20,
|
||||
MLX5_OPC_MOD_TLS_TIS_STATIC_PARAMS = 0x1,
|
||||
};
|
||||
|
||||
enum {
|
||||
MLX5_OPC_MOD_TLS_TIS_PROGRESS_PARAMS = 0x20,
|
||||
MLX5_OPC_MOD_TLS_TIS_PROGRESS_PARAMS = 0x1,
|
||||
};
|
||||
|
||||
enum {
|
||||
|
|
|
|||
|
|
@ -10078,9 +10078,8 @@ struct mlx5_ifc_tls_static_params_bits {
|
|||
};
|
||||
|
||||
struct mlx5_ifc_tls_progress_params_bits {
|
||||
u8 valid[0x1];
|
||||
u8 reserved_at_1[0x7];
|
||||
u8 pd[0x18];
|
||||
u8 reserved_at_0[0x8];
|
||||
u8 tisn[0x18];
|
||||
|
||||
u8 next_record_tcp_sn[0x20];
|
||||
|
||||
|
|
|
|||
|
|
@ -159,7 +159,16 @@ struct page {
|
|||
/** @pgmap: Points to the hosting device page map. */
|
||||
struct dev_pagemap *pgmap;
|
||||
void *zone_device_data;
|
||||
unsigned long _zd_pad_1; /* uses mapping */
|
||||
/*
|
||||
* ZONE_DEVICE private pages are counted as being
|
||||
* mapped so the next 3 words hold the mapping, index,
|
||||
* and private fields from the source anonymous or
|
||||
* page cache page while the page is migrated to device
|
||||
* private memory.
|
||||
* ZONE_DEVICE MEMORY_DEVICE_FS_DAX pages also
|
||||
* use the mapping, index, and private fields when
|
||||
* pmem backed DAX files are mapped.
|
||||
*/
|
||||
};
|
||||
|
||||
/** @rcu_head: You can use this to free a page by RCU. */
|
||||
|
|
|
|||
|
|
@ -1567,8 +1567,10 @@ extern bool pcie_ports_native;
|
|||
|
||||
#ifdef CONFIG_PCIEASPM
|
||||
bool pcie_aspm_support_enabled(void);
|
||||
bool pcie_aspm_enabled(struct pci_dev *pdev);
|
||||
#else
|
||||
static inline bool pcie_aspm_support_enabled(void) { return false; }
|
||||
static inline bool pcie_aspm_enabled(struct pci_dev *pdev) { return false; }
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PCIEAER
|
||||
|
|
|
|||
|
|
@ -1362,6 +1362,14 @@ static inline void skb_copy_hash(struct sk_buff *to, const struct sk_buff *from)
|
|||
to->l4_hash = from->l4_hash;
|
||||
};
|
||||
|
||||
static inline void skb_copy_decrypted(struct sk_buff *to,
|
||||
const struct sk_buff *from)
|
||||
{
|
||||
#ifdef CONFIG_TLS_DEVICE
|
||||
to->decrypted = from->decrypted;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef NET_SKBUFF_DATA_USES_OFFSET
|
||||
static inline unsigned char *skb_end_pointer(const struct sk_buff *skb)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -292,6 +292,9 @@ struct ucred {
|
|||
#define MSG_BATCH 0x40000 /* sendmmsg(): more messages coming */
|
||||
#define MSG_EOF MSG_FIN
|
||||
#define MSG_NO_SHARED_FRAGS 0x80000 /* sendpage() internal : page frags are not shared */
|
||||
#define MSG_SENDPAGE_DECRYPTED 0x100000 /* sendpage() internal : page may carry
|
||||
* plain text and require encryption
|
||||
*/
|
||||
|
||||
#define MSG_ZEROCOPY 0x4000000 /* Use user data in kernel path */
|
||||
#define MSG_FASTOPEN 0x20000000 /* Send data in TCP SYN */
|
||||
|
|
|
|||
|
|
@ -1457,7 +1457,7 @@ typedef void (*usb_complete_t)(struct urb *);
|
|||
* field rather than determining a dma address themselves.
|
||||
*
|
||||
* Note that transfer_buffer must still be set if the controller
|
||||
* does not support DMA (as indicated by bus.uses_dma) and when talking
|
||||
* does not support DMA (as indicated by hcd_uses_dma()) and when talking
|
||||
* to root hub. If you have to trasfer between highmem zone and the device
|
||||
* on such controller, create a bounce buffer or bail out with an error.
|
||||
* If transfer_buffer cannot be set (is in highmem) and the controller is DMA
|
||||
|
|
|
|||
|
|
@ -422,6 +422,9 @@ static inline bool hcd_periodic_completion_in_progress(struct usb_hcd *hcd,
|
|||
return hcd->high_prio_bh.completing_ep == ep;
|
||||
}
|
||||
|
||||
#define hcd_uses_dma(hcd) \
|
||||
(IS_ENABLED(CONFIG_HAS_DMA) && (hcd)->self.uses_dma)
|
||||
|
||||
extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb);
|
||||
extern int usb_hcd_check_unlink_urb(struct usb_hcd *hcd, struct urb *urb,
|
||||
int status);
|
||||
|
|
|
|||
|
|
@ -1,39 +0,0 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Character LCD driver for Linux
|
||||
*
|
||||
* Copyright (C) 2000-2008, Willy Tarreau <w@1wt.eu>
|
||||
* Copyright (C) 2016-2017 Glider bvba
|
||||
*/
|
||||
|
||||
struct charlcd {
|
||||
const struct charlcd_ops *ops;
|
||||
const unsigned char *char_conv; /* Optional */
|
||||
|
||||
int ifwidth; /* 4-bit or 8-bit (default) */
|
||||
int height;
|
||||
int width;
|
||||
int bwidth; /* Default set by charlcd_alloc() */
|
||||
int hwidth; /* Default set by charlcd_alloc() */
|
||||
|
||||
void *drvdata; /* Set by charlcd_alloc() */
|
||||
};
|
||||
|
||||
struct charlcd_ops {
|
||||
/* Required */
|
||||
void (*write_cmd)(struct charlcd *lcd, int cmd);
|
||||
void (*write_data)(struct charlcd *lcd, int data);
|
||||
|
||||
/* Optional */
|
||||
void (*write_cmd_raw4)(struct charlcd *lcd, int cmd); /* 4-bit only */
|
||||
void (*clear_fast)(struct charlcd *lcd);
|
||||
void (*backlight)(struct charlcd *lcd, int on);
|
||||
};
|
||||
|
||||
struct charlcd *charlcd_alloc(unsigned int drvdata_size);
|
||||
void charlcd_free(struct charlcd *lcd);
|
||||
|
||||
int charlcd_register(struct charlcd *lcd);
|
||||
int charlcd_unregister(struct charlcd *lcd);
|
||||
|
||||
void charlcd_poke(struct charlcd *lcd);
|
||||
|
|
@ -278,6 +278,7 @@ struct hci_dev {
|
|||
__u16 conn_info_min_age;
|
||||
__u16 conn_info_max_age;
|
||||
__u16 auth_payload_timeout;
|
||||
__u8 min_enc_key_size;
|
||||
__u8 ssp_debug_mode;
|
||||
__u8 hw_error_code;
|
||||
__u32 clock;
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ int inet_frag_queue_insert(struct inet_frag_queue *q, struct sk_buff *skb,
|
|||
void *inet_frag_reasm_prepare(struct inet_frag_queue *q, struct sk_buff *skb,
|
||||
struct sk_buff *parent);
|
||||
void inet_frag_reasm_finish(struct inet_frag_queue *q, struct sk_buff *head,
|
||||
void *reasm_data);
|
||||
void *reasm_data, bool try_coalesce);
|
||||
struct sk_buff *inet_frag_pull_head(struct inet_frag_queue *q);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -61,7 +61,6 @@ struct net {
|
|||
spinlock_t rules_mod_lock;
|
||||
|
||||
u32 hash_mix;
|
||||
atomic64_t cookie_gen;
|
||||
|
||||
struct list_head list; /* list of network namespaces */
|
||||
struct list_head exit_list; /* To linked to call pernet exit
|
||||
|
|
|
|||
|
|
@ -423,8 +423,7 @@ struct nft_set {
|
|||
unsigned char *udata;
|
||||
/* runtime data below here */
|
||||
const struct nft_set_ops *ops ____cacheline_aligned;
|
||||
u16 flags:13,
|
||||
bound:1,
|
||||
u16 flags:14,
|
||||
genmask:2;
|
||||
u8 klen;
|
||||
u8 dlen;
|
||||
|
|
@ -1360,12 +1359,15 @@ struct nft_trans_rule {
|
|||
struct nft_trans_set {
|
||||
struct nft_set *set;
|
||||
u32 set_id;
|
||||
bool bound;
|
||||
};
|
||||
|
||||
#define nft_trans_set(trans) \
|
||||
(((struct nft_trans_set *)trans->data)->set)
|
||||
#define nft_trans_set_id(trans) \
|
||||
(((struct nft_trans_set *)trans->data)->set_id)
|
||||
#define nft_trans_set_bound(trans) \
|
||||
(((struct nft_trans_set *)trans->data)->bound)
|
||||
|
||||
struct nft_trans_chain {
|
||||
bool update;
|
||||
|
|
@ -1396,12 +1398,15 @@ struct nft_trans_table {
|
|||
struct nft_trans_elem {
|
||||
struct nft_set *set;
|
||||
struct nft_set_elem elem;
|
||||
bool bound;
|
||||
};
|
||||
|
||||
#define nft_trans_elem_set(trans) \
|
||||
(((struct nft_trans_elem *)trans->data)->set)
|
||||
#define nft_trans_elem(trans) \
|
||||
(((struct nft_trans_elem *)trans->data)->elem)
|
||||
#define nft_trans_elem_set_bound(trans) \
|
||||
(((struct nft_trans_elem *)trans->data)->bound)
|
||||
|
||||
struct nft_trans_obj {
|
||||
struct nft_object *obj;
|
||||
|
|
|
|||
|
|
@ -78,4 +78,6 @@ void nft_indr_block_get_and_ing_cmd(struct net_device *dev,
|
|||
(__reg)->key = __key; \
|
||||
memset(&(__reg)->mask, 0xff, (__reg)->len);
|
||||
|
||||
int nft_chain_offload_priority(struct nft_base_chain *basechain);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -684,9 +684,8 @@ static inline int nlmsg_parse(const struct nlmsghdr *nlh, int hdrlen,
|
|||
const struct nla_policy *policy,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
return __nla_parse(tb, maxtype, nlmsg_attrdata(nlh, hdrlen),
|
||||
nlmsg_attrlen(nlh, hdrlen), policy,
|
||||
NL_VALIDATE_STRICT, extack);
|
||||
return __nlmsg_parse(nlh, hdrlen, tb, maxtype, policy,
|
||||
NL_VALIDATE_STRICT, extack);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -611,7 +611,7 @@ tc_cls_common_offload_init(struct flow_cls_common_offload *cls_common,
|
|||
{
|
||||
cls_common->chain_index = tp->chain->index;
|
||||
cls_common->protocol = tp->protocol;
|
||||
cls_common->prio = tp->prio;
|
||||
cls_common->prio = tp->prio >> 16;
|
||||
if (tc_skip_sw(flags) || flags & TCA_CLS_FLAGS_VERBOSE)
|
||||
cls_common->extack = extack;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2482,6 +2482,7 @@ static inline bool sk_fullsock(const struct sock *sk)
|
|||
|
||||
/* Checks if this SKB belongs to an HW offloaded socket
|
||||
* and whether any SW fallbacks are required based on dev.
|
||||
* Check decrypted mark in case skb_orphan() cleared socket.
|
||||
*/
|
||||
static inline struct sk_buff *sk_validate_xmit_skb(struct sk_buff *skb,
|
||||
struct net_device *dev)
|
||||
|
|
@ -2489,8 +2490,15 @@ static inline struct sk_buff *sk_validate_xmit_skb(struct sk_buff *skb,
|
|||
#ifdef CONFIG_SOCK_VALIDATE_XMIT
|
||||
struct sock *sk = skb->sk;
|
||||
|
||||
if (sk && sk_fullsock(sk) && sk->sk_validate_xmit_skb)
|
||||
if (sk && sk_fullsock(sk) && sk->sk_validate_xmit_skb) {
|
||||
skb = sk->sk_validate_xmit_skb(sk, dev, skb);
|
||||
#ifdef CONFIG_TLS_DEVICE
|
||||
} else if (unlikely(skb->decrypted)) {
|
||||
pr_warn_ratelimited("unencrypted skb with no associated socket - dropping\n");
|
||||
kfree_skb(skb);
|
||||
skb = NULL;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
return skb;
|
||||
|
|
|
|||
|
|
@ -141,6 +141,10 @@ inline void asoc_simple_debug_dai(struct asoc_simple_priv *priv,
|
|||
{
|
||||
struct device *dev = simple_priv_to_dev(priv);
|
||||
|
||||
/* dai might be NULL */
|
||||
if (!dai)
|
||||
return;
|
||||
|
||||
if (dai->name)
|
||||
dev_dbg(dev, "%s dai name = %s\n",
|
||||
name, dai->name);
|
||||
|
|
|
|||
|
|
@ -498,10 +498,10 @@ rxrpc_tx_points;
|
|||
#define E_(a, b) { a, b }
|
||||
|
||||
TRACE_EVENT(rxrpc_local,
|
||||
TP_PROTO(struct rxrpc_local *local, enum rxrpc_local_trace op,
|
||||
TP_PROTO(unsigned int local_debug_id, enum rxrpc_local_trace op,
|
||||
int usage, const void *where),
|
||||
|
||||
TP_ARGS(local, op, usage, where),
|
||||
TP_ARGS(local_debug_id, op, usage, where),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(unsigned int, local )
|
||||
|
|
@ -511,7 +511,7 @@ TRACE_EVENT(rxrpc_local,
|
|||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->local = local->debug_id;
|
||||
__entry->local = local_debug_id;
|
||||
__entry->op = op;
|
||||
__entry->usage = usage;
|
||||
__entry->where = where;
|
||||
|
|
|
|||
|
|
@ -1467,8 +1467,8 @@ union bpf_attr {
|
|||
* If no cookie has been set yet, generate a new cookie. Once
|
||||
* generated, the socket cookie remains stable for the life of the
|
||||
* socket. This helper can be useful for monitoring per socket
|
||||
* networking traffic statistics as it provides a unique socket
|
||||
* identifier per namespace.
|
||||
* networking traffic statistics as it provides a global socket
|
||||
* identifier that can be assumed unique.
|
||||
* Return
|
||||
* A 8-byte long non-decreasing number on success, or 0 if the
|
||||
* socket field is missing inside *skb*.
|
||||
|
|
|
|||
|
|
@ -410,21 +410,6 @@ struct kfd_ioctl_unmap_memory_from_gpu_args {
|
|||
__u32 n_success; /* to/from KFD */
|
||||
};
|
||||
|
||||
/* Allocate GWS for specific queue
|
||||
*
|
||||
* @gpu_id: device identifier
|
||||
* @queue_id: queue's id that GWS is allocated for
|
||||
* @num_gws: how many GWS to allocate
|
||||
* @first_gws: index of the first GWS allocated.
|
||||
* only support contiguous GWS allocation
|
||||
*/
|
||||
struct kfd_ioctl_alloc_queue_gws_args {
|
||||
__u32 gpu_id; /* to KFD */
|
||||
__u32 queue_id; /* to KFD */
|
||||
__u32 num_gws; /* to KFD */
|
||||
__u32 first_gws; /* from KFD */
|
||||
};
|
||||
|
||||
struct kfd_ioctl_get_dmabuf_info_args {
|
||||
__u64 size; /* from KFD */
|
||||
__u64 metadata_ptr; /* to KFD */
|
||||
|
|
@ -544,10 +529,7 @@ enum kfd_mmio_remap {
|
|||
#define AMDKFD_IOC_IMPORT_DMABUF \
|
||||
AMDKFD_IOWR(0x1D, struct kfd_ioctl_import_dmabuf_args)
|
||||
|
||||
#define AMDKFD_IOC_ALLOC_QUEUE_GWS \
|
||||
AMDKFD_IOWR(0x1E, struct kfd_ioctl_alloc_queue_gws_args)
|
||||
|
||||
#define AMDKFD_COMMAND_START 0x01
|
||||
#define AMDKFD_COMMAND_END 0x1F
|
||||
#define AMDKFD_COMMAND_END 0x1E
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -180,6 +180,7 @@ struct siw_cqe {
|
|||
* to control CQ arming.
|
||||
*/
|
||||
struct siw_cq_ctrl {
|
||||
__aligned_u64 notify;
|
||||
__u32 flags;
|
||||
__u32 pad;
|
||||
};
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@
|
|||
#ifndef __INCLUDE_UAPI_SOF_FW_H__
|
||||
#define __INCLUDE_UAPI_SOF_FW_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define SND_SOF_FW_SIG_SIZE 4
|
||||
#define SND_SOF_FW_ABI 1
|
||||
#define SND_SOF_FW_SIG "Reef"
|
||||
|
|
@ -46,8 +48,8 @@ enum snd_sof_fw_blk_type {
|
|||
|
||||
struct snd_sof_blk_hdr {
|
||||
enum snd_sof_fw_blk_type type;
|
||||
uint32_t size; /* bytes minus this header */
|
||||
uint32_t offset; /* offset from base */
|
||||
__u32 size; /* bytes minus this header */
|
||||
__u32 offset; /* offset from base */
|
||||
} __packed;
|
||||
|
||||
/*
|
||||
|
|
@ -61,8 +63,8 @@ enum snd_sof_fw_mod_type {
|
|||
|
||||
struct snd_sof_mod_hdr {
|
||||
enum snd_sof_fw_mod_type type;
|
||||
uint32_t size; /* bytes minus this header */
|
||||
uint32_t num_blocks; /* number of blocks */
|
||||
__u32 size; /* bytes minus this header */
|
||||
__u32 num_blocks; /* number of blocks */
|
||||
} __packed;
|
||||
|
||||
/*
|
||||
|
|
@ -70,9 +72,9 @@ struct snd_sof_mod_hdr {
|
|||
*/
|
||||
struct snd_sof_fw_header {
|
||||
unsigned char sig[SND_SOF_FW_SIG_SIZE]; /* "Reef" */
|
||||
uint32_t file_size; /* size of file minus this header */
|
||||
uint32_t num_modules; /* number of modules */
|
||||
uint32_t abi; /* version of header format */
|
||||
__u32 file_size; /* size of file minus this header */
|
||||
__u32 num_modules; /* number of modules */
|
||||
__u32 abi; /* version of header format */
|
||||
} __packed;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@
|
|||
#ifndef __INCLUDE_UAPI_SOUND_SOF_USER_HEADER_H__
|
||||
#define __INCLUDE_UAPI_SOUND_SOF_USER_HEADER_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* Header for all non IPC ABI data.
|
||||
*
|
||||
|
|
@ -16,12 +18,12 @@
|
|||
* Used by any bespoke component data structures or binary blobs.
|
||||
*/
|
||||
struct sof_abi_hdr {
|
||||
uint32_t magic; /**< 'S', 'O', 'F', '\0' */
|
||||
uint32_t type; /**< component specific type */
|
||||
uint32_t size; /**< size in bytes of data excl. this struct */
|
||||
uint32_t abi; /**< SOF ABI version */
|
||||
uint32_t reserved[4]; /**< reserved for future use */
|
||||
uint32_t data[0]; /**< Component data - opaque to core */
|
||||
__u32 magic; /**< 'S', 'O', 'F', '\0' */
|
||||
__u32 type; /**< component specific type */
|
||||
__u32 size; /**< size in bytes of data excl. this struct */
|
||||
__u32 abi; /**< SOF ABI version */
|
||||
__u32 reserved[4]; /**< reserved for future use */
|
||||
__u32 data[0]; /**< Component data - opaque to core */
|
||||
} __packed;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue