Linux 5.13-rc6
-----BEGIN PGP SIGNATURE----- iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAmDGe+4eHHRvcnZhbGRz QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiG/IUH/iyHVulAtAhL9bnR qL4M1kWfcG1sKS2TzGRZzo6YiUABf89vFP90r4sKxG3AKrb8YkTwmJr8B/sWwcsv PpKkXXTobbDfpSrsXGEapBkQOE7h2w739XeXyBLRPkoCR4UrEFn68TV2rLjMLBPS /EIZkonXLWzzWalgKDP4wSJ7GaQxi3LMx3dGAvbFArEGZ1mPHNlgWy2VokFY/yBf qh1EZ5rugysc78JCpTqfTf3fUPK2idQW5gtHSMbyESrWwJ/3XXL9o1ET3JWURYf1 b0FgVztzddwgULoIGWLxDH5WWts3l54sjBLj0yrLUlnGKA5FjrZb12g9PdhdywuY /8KfjeE= =JfJm -----END PGP SIGNATURE----- Merge tag 'v5.13-rc6' into char-misc-next We need the fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
commit
db4e54aefd
520 changed files with 4152 additions and 2046 deletions
|
|
@ -830,6 +830,7 @@ VIRTCHNL_CHECK_STRUCT_LEN(72, virtchnl_proto_hdr);
|
|||
|
||||
struct virtchnl_proto_hdrs {
|
||||
u8 tunnel_level;
|
||||
u8 pad[3];
|
||||
/**
|
||||
* specify where protocol header start from.
|
||||
* 0 - from the outer layer
|
||||
|
|
|
|||
|
|
@ -199,6 +199,7 @@
|
|||
* must end with any of these keywords:
|
||||
* break;
|
||||
* fallthrough;
|
||||
* continue;
|
||||
* goto <label>;
|
||||
* return [expression];
|
||||
*
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#define __LINUX_ENTRYKVM_H
|
||||
|
||||
#include <linux/entry-common.h>
|
||||
#include <linux/tick.h>
|
||||
|
||||
/* Transfer to guest mode work */
|
||||
#ifdef CONFIG_KVM_XFER_TO_GUEST_WORK
|
||||
|
|
@ -57,7 +58,7 @@ int xfer_to_guest_mode_handle_work(struct kvm_vcpu *vcpu);
|
|||
static inline void xfer_to_guest_mode_prepare(void)
|
||||
{
|
||||
lockdep_assert_irqs_disabled();
|
||||
rcu_nocb_flush_deferred_wakeup();
|
||||
tick_nohz_user_enter_prepare();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -51,6 +51,10 @@ extern struct ctl_table fanotify_table[]; /* for sysctl */
|
|||
#define FANOTIFY_INIT_FLAGS (FANOTIFY_ADMIN_INIT_FLAGS | \
|
||||
FANOTIFY_USER_INIT_FLAGS)
|
||||
|
||||
/* Internal group flags */
|
||||
#define FANOTIFY_UNPRIV 0x80000000
|
||||
#define FANOTIFY_INTERNAL_GROUP_FLAGS (FANOTIFY_UNPRIV)
|
||||
|
||||
#define FANOTIFY_MARK_TYPE_BITS (FAN_MARK_INODE | FAN_MARK_MOUNT | \
|
||||
FAN_MARK_FILESYSTEM)
|
||||
|
||||
|
|
|
|||
|
|
@ -659,6 +659,9 @@ static inline void __fb_pad_aligned_buffer(u8 *dst, u32 d_pitch,
|
|||
/* drivers/video/fb_defio.c */
|
||||
int fb_deferred_io_mmap(struct fb_info *info, struct vm_area_struct *vma);
|
||||
extern void fb_deferred_io_init(struct fb_info *info);
|
||||
extern void fb_deferred_io_open(struct fb_info *info,
|
||||
struct inode *inode,
|
||||
struct file *file);
|
||||
extern void fb_deferred_io_cleanup(struct fb_info *info);
|
||||
extern int fb_deferred_io_fsync(struct file *file, loff_t start,
|
||||
loff_t end, int datasync);
|
||||
|
|
|
|||
|
|
@ -1167,8 +1167,7 @@ static inline void hid_hw_wait(struct hid_device *hdev)
|
|||
*/
|
||||
static inline u32 hid_report_len(struct hid_report *report)
|
||||
{
|
||||
/* equivalent to DIV_ROUND_UP(report->size, 8) + !!(report->id > 0) */
|
||||
return ((report->size - 1) >> 3) + 1 + (report->id > 0);
|
||||
return DIV_ROUND_UP(report->size, 8) + (report->id > 0);
|
||||
}
|
||||
|
||||
int hid_report_raw_event(struct hid_device *hid, int type, u8 *data, u32 size,
|
||||
|
|
|
|||
|
|
@ -332,12 +332,30 @@ static inline struct host1x_device *to_host1x_device(struct device *dev)
|
|||
int host1x_device_init(struct host1x_device *device);
|
||||
int host1x_device_exit(struct host1x_device *device);
|
||||
|
||||
int __host1x_client_register(struct host1x_client *client,
|
||||
struct lock_class_key *key);
|
||||
#define host1x_client_register(class) \
|
||||
({ \
|
||||
static struct lock_class_key __key; \
|
||||
__host1x_client_register(class, &__key); \
|
||||
void __host1x_client_init(struct host1x_client *client, struct lock_class_key *key);
|
||||
void host1x_client_exit(struct host1x_client *client);
|
||||
|
||||
#define host1x_client_init(client) \
|
||||
({ \
|
||||
static struct lock_class_key __key; \
|
||||
__host1x_client_init(client, &__key); \
|
||||
})
|
||||
|
||||
int __host1x_client_register(struct host1x_client *client);
|
||||
|
||||
/*
|
||||
* Note that this wrapper calls __host1x_client_init() for compatibility
|
||||
* with existing callers. Callers that want to separately initialize and
|
||||
* register a host1x client must first initialize using either of the
|
||||
* __host1x_client_init() or host1x_client_init() functions and then use
|
||||
* the low-level __host1x_client_register() function to avoid the client
|
||||
* getting reinitialized.
|
||||
*/
|
||||
#define host1x_client_register(client) \
|
||||
({ \
|
||||
static struct lock_class_key __key; \
|
||||
__host1x_client_init(client, &__key); \
|
||||
__host1x_client_register(client); \
|
||||
})
|
||||
|
||||
int host1x_client_unregister(struct host1x_client *client);
|
||||
|
|
|
|||
|
|
@ -1185,7 +1185,15 @@ __gfn_to_memslot(struct kvm_memslots *slots, gfn_t gfn)
|
|||
static inline unsigned long
|
||||
__gfn_to_hva_memslot(const struct kvm_memory_slot *slot, gfn_t gfn)
|
||||
{
|
||||
return slot->userspace_addr + (gfn - slot->base_gfn) * PAGE_SIZE;
|
||||
/*
|
||||
* The index was checked originally in search_memslots. To avoid
|
||||
* that a malicious guest builds a Spectre gadget out of e.g. page
|
||||
* table walks, do not let the processor speculate loads outside
|
||||
* the guest's registered memslots.
|
||||
*/
|
||||
unsigned long offset = gfn - slot->base_gfn;
|
||||
offset = array_index_nospec(offset, slot->npages);
|
||||
return slot->userspace_addr + offset * PAGE_SIZE;
|
||||
}
|
||||
|
||||
static inline int memslot_id(struct kvm *kvm, gfn_t gfn)
|
||||
|
|
|
|||
|
|
@ -26,9 +26,7 @@ struct bd70528_data {
|
|||
struct mutex rtc_timer_lock;
|
||||
};
|
||||
|
||||
#define BD70528_BUCK_VOLTS 17
|
||||
#define BD70528_BUCK_VOLTS 17
|
||||
#define BD70528_BUCK_VOLTS 17
|
||||
#define BD70528_BUCK_VOLTS 0x10
|
||||
#define BD70528_LDO_VOLTS 0x20
|
||||
|
||||
#define BD70528_REG_BUCK1_EN 0x0F
|
||||
|
|
|
|||
|
|
@ -26,11 +26,11 @@ enum {
|
|||
BD71828_REGULATOR_AMOUNT,
|
||||
};
|
||||
|
||||
#define BD71828_BUCK1267_VOLTS 0xEF
|
||||
#define BD71828_BUCK3_VOLTS 0x10
|
||||
#define BD71828_BUCK4_VOLTS 0x20
|
||||
#define BD71828_BUCK5_VOLTS 0x10
|
||||
#define BD71828_LDO_VOLTS 0x32
|
||||
#define BD71828_BUCK1267_VOLTS 0x100
|
||||
#define BD71828_BUCK3_VOLTS 0x20
|
||||
#define BD71828_BUCK4_VOLTS 0x40
|
||||
#define BD71828_BUCK5_VOLTS 0x20
|
||||
#define BD71828_LDO_VOLTS 0x40
|
||||
/* LDO6 is fixed 1.8V voltage */
|
||||
#define BD71828_LDO_6_VOLTAGE 1800000
|
||||
|
||||
|
|
|
|||
|
|
@ -630,6 +630,7 @@ struct mlx4_caps {
|
|||
bool wol_port[MLX4_MAX_PORTS + 1];
|
||||
struct mlx4_rate_limit_caps rl_caps;
|
||||
u32 health_buffer_addrs;
|
||||
bool map_clock_to_user;
|
||||
};
|
||||
|
||||
struct mlx4_buf_list {
|
||||
|
|
|
|||
|
|
@ -1289,6 +1289,8 @@ enum mlx5_fc_bulk_alloc_bitmask {
|
|||
|
||||
#define MLX5_FC_BULK_NUM_FCS(fc_enum) (MLX5_FC_BULK_SIZE_FACTOR * (fc_enum))
|
||||
|
||||
#define MLX5_FT_MAX_MULTIPATH_LEVEL 63
|
||||
|
||||
enum {
|
||||
MLX5_STEERING_FORMAT_CONNECTX_5 = 0,
|
||||
MLX5_STEERING_FORMAT_CONNECTX_6DX = 1,
|
||||
|
|
|
|||
|
|
@ -445,13 +445,6 @@ struct mm_struct {
|
|||
*/
|
||||
atomic_t has_pinned;
|
||||
|
||||
/**
|
||||
* @write_protect_seq: Locked when any thread is write
|
||||
* protecting pages mapped by this mm to enforce a later COW,
|
||||
* for instance during page table copying for fork().
|
||||
*/
|
||||
seqcount_t write_protect_seq;
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
atomic_long_t pgtables_bytes; /* PTE page table pages */
|
||||
#endif
|
||||
|
|
@ -460,6 +453,18 @@ struct mm_struct {
|
|||
spinlock_t page_table_lock; /* Protects page tables and some
|
||||
* counters
|
||||
*/
|
||||
/*
|
||||
* With some kernel config, the current mmap_lock's offset
|
||||
* inside 'mm_struct' is at 0x120, which is very optimal, as
|
||||
* its two hot fields 'count' and 'owner' sit in 2 different
|
||||
* cachelines, and when mmap_lock is highly contended, both
|
||||
* of the 2 fields will be accessed frequently, current layout
|
||||
* will help to reduce cache bouncing.
|
||||
*
|
||||
* So please be careful with adding new fields before
|
||||
* mmap_lock, which can easily push the 2 fields into one
|
||||
* cacheline.
|
||||
*/
|
||||
struct rw_semaphore mmap_lock;
|
||||
|
||||
struct list_head mmlist; /* List of maybe swapped mm's. These
|
||||
|
|
@ -480,7 +485,15 @@ struct mm_struct {
|
|||
unsigned long stack_vm; /* VM_STACK */
|
||||
unsigned long def_flags;
|
||||
|
||||
/**
|
||||
* @write_protect_seq: Locked when any thread is write
|
||||
* protecting pages mapped by this mm to enforce a later COW,
|
||||
* for instance during page table copying for fork().
|
||||
*/
|
||||
seqcount_t write_protect_seq;
|
||||
|
||||
spinlock_t arg_lock; /* protect the below fields */
|
||||
|
||||
unsigned long start_code, end_code, start_data, end_data;
|
||||
unsigned long start_brk, brk, start_stack;
|
||||
unsigned long arg_start, arg_end, env_start, env_end;
|
||||
|
|
|
|||
|
|
@ -2344,6 +2344,7 @@ int pci_vpd_find_info_keyword(const u8 *buf, unsigned int off,
|
|||
struct device_node;
|
||||
struct irq_domain;
|
||||
struct irq_domain *pci_host_bridge_of_msi_domain(struct pci_bus *bus);
|
||||
bool pci_host_of_has_msi_map(struct device *dev);
|
||||
|
||||
/* Arch may override this (weak) */
|
||||
struct device_node *pcibios_get_phb_of_node(struct pci_bus *bus);
|
||||
|
|
@ -2351,6 +2352,7 @@ struct device_node *pcibios_get_phb_of_node(struct pci_bus *bus);
|
|||
#else /* CONFIG_OF */
|
||||
static inline struct irq_domain *
|
||||
pci_host_bridge_of_msi_domain(struct pci_bus *bus) { return NULL; }
|
||||
static inline bool pci_host_of_has_msi_map(struct device *dev) { return false; }
|
||||
#endif /* CONFIG_OF */
|
||||
|
||||
static inline struct device_node *
|
||||
|
|
|
|||
|
|
@ -432,6 +432,14 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres
|
|||
* To be differentiate with macro pte_mkyoung, this macro is used on platforms
|
||||
* where software maintains page access bit.
|
||||
*/
|
||||
#ifndef pte_sw_mkyoung
|
||||
static inline pte_t pte_sw_mkyoung(pte_t pte)
|
||||
{
|
||||
return pte;
|
||||
}
|
||||
#define pte_sw_mkyoung pte_sw_mkyoung
|
||||
#endif
|
||||
|
||||
#ifndef pte_savedwrite
|
||||
#define pte_savedwrite pte_write
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ struct sysc_regbits {
|
|||
s8 emufree_shift;
|
||||
};
|
||||
|
||||
#define SYSC_QUIRK_REINIT_ON_RESUME BIT(27)
|
||||
#define SYSC_QUIRK_GPMC_DEBUG BIT(26)
|
||||
#define SYSC_MODULE_QUIRK_ENA_RESETDONE BIT(25)
|
||||
#define SYSC_MODULE_QUIRK_PRUSS BIT(24)
|
||||
|
|
|
|||
|
|
@ -1109,6 +1109,7 @@ struct pcr_ops {
|
|||
};
|
||||
|
||||
enum PDEV_STAT {PDEV_STAT_IDLE, PDEV_STAT_RUN};
|
||||
enum ASPM_MODE {ASPM_MODE_CFG, ASPM_MODE_REG};
|
||||
|
||||
#define ASPM_L1_1_EN BIT(0)
|
||||
#define ASPM_L1_2_EN BIT(1)
|
||||
|
|
@ -1234,6 +1235,7 @@ struct rtsx_pcr {
|
|||
u8 card_drive_sel;
|
||||
#define ASPM_L1_EN 0x02
|
||||
u8 aspm_en;
|
||||
enum ASPM_MODE aspm_mode;
|
||||
bool aspm_enabled;
|
||||
|
||||
#define PCR_MS_PMOS (1 << 0)
|
||||
|
|
|
|||
|
|
@ -350,11 +350,19 @@ struct load_weight {
|
|||
* Only for tasks we track a moving average of the past instantaneous
|
||||
* estimated utilization. This allows to absorb sporadic drops in utilization
|
||||
* of an otherwise almost periodic task.
|
||||
*
|
||||
* The UTIL_AVG_UNCHANGED flag is used to synchronize util_est with util_avg
|
||||
* updates. When a task is dequeued, its util_est should not be updated if its
|
||||
* util_avg has not been updated in the meantime.
|
||||
* This information is mapped into the MSB bit of util_est.enqueued at dequeue
|
||||
* time. Since max value of util_est.enqueued for a task is 1024 (PELT util_avg
|
||||
* for a task) it is safe to use MSB.
|
||||
*/
|
||||
struct util_est {
|
||||
unsigned int enqueued;
|
||||
unsigned int ewma;
|
||||
#define UTIL_EST_WEIGHT_SHIFT 2
|
||||
#define UTIL_AVG_UNCHANGED 0x80000000
|
||||
} __attribute__((__aligned__(sizeof(u64))));
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/context_tracking_state.h>
|
||||
#include <linux/cpumask.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/rcupdate.h>
|
||||
|
||||
#ifdef CONFIG_GENERIC_CLOCKEVENTS
|
||||
extern void __init tick_init(void);
|
||||
|
|
@ -300,4 +301,10 @@ static inline void tick_nohz_task_switch(void)
|
|||
__tick_nohz_task_switch();
|
||||
}
|
||||
|
||||
static inline void tick_nohz_user_enter_prepare(void)
|
||||
{
|
||||
if (tick_nohz_full_cpu(smp_processor_id()))
|
||||
rcu_nocb_flush_deferred_wakeup();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -460,7 +460,7 @@ static inline unsigned int rdo_max_power(u32 rdo)
|
|||
#define PD_T_RECEIVER_RESPONSE 15 /* 15ms max */
|
||||
#define PD_T_SOURCE_ACTIVITY 45
|
||||
#define PD_T_SINK_ACTIVITY 135
|
||||
#define PD_T_SINK_WAIT_CAP 240
|
||||
#define PD_T_SINK_WAIT_CAP 310 /* 310 - 620 ms */
|
||||
#define PD_T_PS_TRANSITION 500
|
||||
#define PD_T_SRC_TRANSITION 35
|
||||
#define PD_T_DRP_SNK 40
|
||||
|
|
|
|||
|
|
@ -24,8 +24,4 @@ enum usb_pd_ext_sdb_fields {
|
|||
#define USB_PD_EXT_SDB_EVENT_OVP BIT(3)
|
||||
#define USB_PD_EXT_SDB_EVENT_CF_CV_MODE BIT(4)
|
||||
|
||||
#define USB_PD_EXT_SDB_PPS_EVENTS (USB_PD_EXT_SDB_EVENT_OCP | \
|
||||
USB_PD_EXT_SDB_EVENT_OTP | \
|
||||
USB_PD_EXT_SDB_EVENT_OVP)
|
||||
|
||||
#endif /* __LINUX_USB_PD_EXT_SDB_H */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue