mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 05:39:42 -04:00
Merge 4.19-rc4 into usb-next
We need the USB fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
@@ -1026,7 +1026,8 @@ static inline void __iomem *ioremap_wt(phys_addr_t offset, size_t size)
|
||||
#define ioport_map ioport_map
|
||||
static inline void __iomem *ioport_map(unsigned long port, unsigned int nr)
|
||||
{
|
||||
return PCI_IOBASE + (port & MMIO_UPPER_LIMIT);
|
||||
port &= IO_SPACE_LIMIT;
|
||||
return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -56,6 +56,7 @@ struct blkcg {
|
||||
struct list_head all_blkcgs_node;
|
||||
#ifdef CONFIG_CGROUP_WRITEBACK
|
||||
struct list_head cgwb_list;
|
||||
refcount_t cgwb_refcnt;
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -89,7 +90,6 @@ struct blkg_policy_data {
|
||||
/* the blkg and policy id this per-policy data belongs to */
|
||||
struct blkcg_gq *blkg;
|
||||
int plid;
|
||||
bool offline;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -387,6 +387,49 @@ static inline struct blkcg *cpd_to_blkcg(struct blkcg_policy_data *cpd)
|
||||
return cpd ? cpd->blkcg : NULL;
|
||||
}
|
||||
|
||||
extern void blkcg_destroy_blkgs(struct blkcg *blkcg);
|
||||
|
||||
#ifdef CONFIG_CGROUP_WRITEBACK
|
||||
|
||||
/**
|
||||
* blkcg_cgwb_get - get a reference for blkcg->cgwb_list
|
||||
* @blkcg: blkcg of interest
|
||||
*
|
||||
* This is used to track the number of active wb's related to a blkcg.
|
||||
*/
|
||||
static inline void blkcg_cgwb_get(struct blkcg *blkcg)
|
||||
{
|
||||
refcount_inc(&blkcg->cgwb_refcnt);
|
||||
}
|
||||
|
||||
/**
|
||||
* blkcg_cgwb_put - put a reference for @blkcg->cgwb_list
|
||||
* @blkcg: blkcg of interest
|
||||
*
|
||||
* This is used to track the number of active wb's related to a blkcg.
|
||||
* When this count goes to zero, all active wb has finished so the
|
||||
* blkcg can continue destruction by calling blkcg_destroy_blkgs().
|
||||
* This work may occur in cgwb_release_workfn() on the cgwb_release
|
||||
* workqueue.
|
||||
*/
|
||||
static inline void blkcg_cgwb_put(struct blkcg *blkcg)
|
||||
{
|
||||
if (refcount_dec_and_test(&blkcg->cgwb_refcnt))
|
||||
blkcg_destroy_blkgs(blkcg);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static inline void blkcg_cgwb_get(struct blkcg *blkcg) { }
|
||||
|
||||
static inline void blkcg_cgwb_put(struct blkcg *blkcg)
|
||||
{
|
||||
/* wb isn't being accounted, so trigger destruction right away */
|
||||
blkcg_destroy_blkgs(blkcg);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* blkg_path - format cgroup path of blkg
|
||||
* @blkg: blkg of interest
|
||||
|
||||
@@ -54,7 +54,7 @@ struct blk_stat_callback;
|
||||
* Maximum number of blkcg policies allowed to be registered concurrently.
|
||||
* Defined here to simplify include dependency.
|
||||
*/
|
||||
#define BLKCG_MAX_POLS 3
|
||||
#define BLKCG_MAX_POLS 5
|
||||
|
||||
typedef void (rq_end_io_fn)(struct request *, blk_status_t);
|
||||
|
||||
|
||||
@@ -1763,6 +1763,7 @@ struct file_operations {
|
||||
u64);
|
||||
int (*dedupe_file_range)(struct file *, loff_t, struct file *, loff_t,
|
||||
u64);
|
||||
int (*fadvise)(struct file *, loff_t, loff_t, int);
|
||||
} __randomize_layout;
|
||||
|
||||
struct inode_operations {
|
||||
@@ -3459,4 +3460,8 @@ static inline bool dir_relax_shared(struct inode *inode)
|
||||
extern bool path_noexec(const struct path *path);
|
||||
extern void inode_nohighmem(struct inode *inode);
|
||||
|
||||
/* mm/fadvise.c */
|
||||
extern int vfs_fadvise(struct file *file, loff_t offset, loff_t len,
|
||||
int advice);
|
||||
|
||||
#endif /* _LINUX_FS_H */
|
||||
|
||||
@@ -526,6 +526,7 @@ struct hid_input {
|
||||
const char *name;
|
||||
bool registered;
|
||||
struct list_head reports; /* the list of reports */
|
||||
unsigned int application; /* application usage for this input */
|
||||
};
|
||||
|
||||
enum hid_type {
|
||||
|
||||
@@ -362,8 +362,8 @@ struct mlx5_frag_buf {
|
||||
struct mlx5_frag_buf_ctrl {
|
||||
struct mlx5_frag_buf frag_buf;
|
||||
u32 sz_m1;
|
||||
u32 frag_sz_m1;
|
||||
u32 strides_offset;
|
||||
u16 frag_sz_m1;
|
||||
u16 strides_offset;
|
||||
u8 log_sz;
|
||||
u8 log_stride;
|
||||
u8 log_frag_strides;
|
||||
@@ -995,7 +995,7 @@ static inline u32 mlx5_base_mkey(const u32 key)
|
||||
}
|
||||
|
||||
static inline void mlx5_fill_fbc_offset(u8 log_stride, u8 log_sz,
|
||||
u32 strides_offset,
|
||||
u16 strides_offset,
|
||||
struct mlx5_frag_buf_ctrl *fbc)
|
||||
{
|
||||
fbc->log_stride = log_stride;
|
||||
@@ -1052,7 +1052,7 @@ int mlx5_cmd_free_uar(struct mlx5_core_dev *dev, u32 uarn);
|
||||
void mlx5_health_cleanup(struct mlx5_core_dev *dev);
|
||||
int mlx5_health_init(struct mlx5_core_dev *dev);
|
||||
void mlx5_start_health_poll(struct mlx5_core_dev *dev);
|
||||
void mlx5_stop_health_poll(struct mlx5_core_dev *dev);
|
||||
void mlx5_stop_health_poll(struct mlx5_core_dev *dev, bool disable_health);
|
||||
void mlx5_drain_health_wq(struct mlx5_core_dev *dev);
|
||||
void mlx5_trigger_health_work(struct mlx5_core_dev *dev);
|
||||
void mlx5_drain_health_recovery(struct mlx5_core_dev *dev);
|
||||
|
||||
@@ -341,7 +341,7 @@ struct mm_struct {
|
||||
struct {
|
||||
struct vm_area_struct *mmap; /* list of VMAs */
|
||||
struct rb_root mm_rb;
|
||||
u32 vmacache_seqnum; /* per-thread vmacache */
|
||||
u64 vmacache_seqnum; /* per-thread vmacache */
|
||||
#ifdef CONFIG_MMU
|
||||
unsigned long (*get_unmapped_area) (struct file *filp,
|
||||
unsigned long addr, unsigned long len,
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
#define VMACACHE_MASK (VMACACHE_SIZE - 1)
|
||||
|
||||
struct vmacache {
|
||||
u32 seqnum;
|
||||
u64 seqnum;
|
||||
struct vm_area_struct *vmas[VMACACHE_SIZE];
|
||||
};
|
||||
|
||||
|
||||
@@ -754,6 +754,7 @@ struct tb_service_id {
|
||||
* struct typec_device_id - USB Type-C alternate mode identifiers
|
||||
* @svid: Standard or Vendor ID
|
||||
* @mode: Mode index
|
||||
* @driver_data: Driver specific data
|
||||
*/
|
||||
struct typec_device_id {
|
||||
__u16 svid;
|
||||
|
||||
@@ -1235,6 +1235,9 @@ void pci_bus_remove_resources(struct pci_bus *bus);
|
||||
int devm_request_pci_bus_resources(struct device *dev,
|
||||
struct list_head *resources);
|
||||
|
||||
/* Temporary until new and working PCI SBR API in place */
|
||||
int pci_bridge_secondary_bus_reset(struct pci_dev *dev);
|
||||
|
||||
#define pci_bus_for_each_resource(bus, res, i) \
|
||||
for (i = 0; \
|
||||
(res = pci_bus_resource_n(bus, i)) || i < PCI_BRIDGE_RESOURCE_NUM; \
|
||||
|
||||
@@ -3084,4 +3084,6 @@
|
||||
|
||||
#define PCI_VENDOR_ID_OCZ 0x1b85
|
||||
|
||||
#define PCI_VENDOR_ID_NCUBE 0x10ff
|
||||
|
||||
#endif /* _LINUX_PCI_IDS_H */
|
||||
|
||||
@@ -258,8 +258,8 @@ extern void ktime_get_snapshot(struct system_time_snapshot *systime_snapshot);
|
||||
extern int persistent_clock_is_local;
|
||||
|
||||
extern void read_persistent_clock64(struct timespec64 *ts);
|
||||
void read_persistent_clock_and_boot_offset(struct timespec64 *wall_clock,
|
||||
struct timespec64 *boot_offset);
|
||||
void read_persistent_wall_and_boot_offset(struct timespec64 *wall_clock,
|
||||
struct timespec64 *boot_offset);
|
||||
extern int update_persistent_clock64(struct timespec64 now);
|
||||
|
||||
/*
|
||||
|
||||
@@ -158,8 +158,10 @@ extern void syscall_unregfunc(void);
|
||||
* For rcuidle callers, use srcu since sched-rcu \
|
||||
* doesn't work from the idle path. \
|
||||
*/ \
|
||||
if (rcuidle) \
|
||||
if (rcuidle) { \
|
||||
idx = srcu_read_lock_notrace(&tracepoint_srcu); \
|
||||
rcu_irq_enter_irqson(); \
|
||||
} \
|
||||
\
|
||||
it_func_ptr = rcu_dereference_raw((tp)->funcs); \
|
||||
\
|
||||
@@ -171,8 +173,10 @@ extern void syscall_unregfunc(void);
|
||||
} while ((++it_func_ptr)->func); \
|
||||
} \
|
||||
\
|
||||
if (rcuidle) \
|
||||
if (rcuidle) { \
|
||||
rcu_irq_exit_irqson(); \
|
||||
srcu_read_unlock_notrace(&tracepoint_srcu, idx);\
|
||||
} \
|
||||
\
|
||||
preempt_enable_notrace(); \
|
||||
} while (0)
|
||||
|
||||
@@ -105,7 +105,6 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
|
||||
#ifdef CONFIG_DEBUG_VM_VMACACHE
|
||||
VMACACHE_FIND_CALLS,
|
||||
VMACACHE_FIND_HITS,
|
||||
VMACACHE_FULL_FLUSHES,
|
||||
#endif
|
||||
#ifdef CONFIG_SWAP
|
||||
SWAP_RA,
|
||||
|
||||
@@ -10,7 +10,6 @@ static inline void vmacache_flush(struct task_struct *tsk)
|
||||
memset(tsk->vmacache.vmas, 0, sizeof(tsk->vmacache.vmas));
|
||||
}
|
||||
|
||||
extern void vmacache_flush_all(struct mm_struct *mm);
|
||||
extern void vmacache_update(unsigned long addr, struct vm_area_struct *newvma);
|
||||
extern struct vm_area_struct *vmacache_find(struct mm_struct *mm,
|
||||
unsigned long addr);
|
||||
@@ -24,10 +23,6 @@ extern struct vm_area_struct *vmacache_find_exact(struct mm_struct *mm,
|
||||
static inline void vmacache_invalidate(struct mm_struct *mm)
|
||||
{
|
||||
mm->vmacache_seqnum++;
|
||||
|
||||
/* deal with overflows */
|
||||
if (unlikely(mm->vmacache_seqnum == 0))
|
||||
vmacache_flush_all(mm);
|
||||
}
|
||||
|
||||
#endif /* __LINUX_VMACACHE_H */
|
||||
|
||||
@@ -4865,8 +4865,8 @@ const char *reg_initiator_name(enum nl80211_reg_initiator initiator);
|
||||
*
|
||||
* Return: 0 on success. -ENODATA.
|
||||
*/
|
||||
int reg_query_regdb_wmm(char *alpha2, int freq, u32 *ptr,
|
||||
struct ieee80211_wmm_rule *rule);
|
||||
int reg_query_regdb_wmm(char *alpha2, int freq,
|
||||
struct ieee80211_reg_rule *rule);
|
||||
|
||||
/*
|
||||
* callbacks for asynchronous cfg80211 methods, notification
|
||||
|
||||
@@ -30,7 +30,7 @@ struct nf_conn_timeout {
|
||||
};
|
||||
|
||||
static inline unsigned int *
|
||||
nf_ct_timeout_data(struct nf_conn_timeout *t)
|
||||
nf_ct_timeout_data(const struct nf_conn_timeout *t)
|
||||
{
|
||||
struct nf_ct_timeout *timeout;
|
||||
|
||||
|
||||
@@ -217,15 +217,15 @@ struct ieee80211_wmm_rule {
|
||||
struct ieee80211_reg_rule {
|
||||
struct ieee80211_freq_range freq_range;
|
||||
struct ieee80211_power_rule power_rule;
|
||||
struct ieee80211_wmm_rule *wmm_rule;
|
||||
struct ieee80211_wmm_rule wmm_rule;
|
||||
u32 flags;
|
||||
u32 dfs_cac_ms;
|
||||
bool has_wmm;
|
||||
};
|
||||
|
||||
struct ieee80211_regdomain {
|
||||
struct rcu_head rcu_head;
|
||||
u32 n_reg_rules;
|
||||
u32 n_wmm_rules;
|
||||
char alpha2[3];
|
||||
enum nl80211_dfs_regions dfs_region;
|
||||
struct ieee80211_reg_rule reg_rules[];
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
|
||||
/* keyctl structures */
|
||||
struct keyctl_dh_params {
|
||||
__s32 private;
|
||||
__s32 dh_private;
|
||||
__s32 prime;
|
||||
__s32 base;
|
||||
};
|
||||
|
||||
@@ -144,7 +144,7 @@ enum perf_event_sample_format {
|
||||
|
||||
PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */
|
||||
|
||||
__PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63,
|
||||
__PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/socket.h> /* For __kernel_sockaddr_storage. */
|
||||
#include <linux/in6.h> /* For struct in6_addr. */
|
||||
|
||||
#define RDS_IB_ABI_VERSION 0x301
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ struct vhost_memory {
|
||||
#define VHOST_BACKEND_F_IOTLB_MSG_V2 0x1
|
||||
|
||||
#define VHOST_SET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x25, __u64)
|
||||
#define VHOST_GET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x26, __u64)
|
||||
#define VHOST_GET_BACKEND_FEATURES _IOR(VHOST_VIRTIO, 0x26, __u64)
|
||||
|
||||
/* VHOST_NET specific defines */
|
||||
|
||||
|
||||
@@ -17,11 +17,12 @@
|
||||
|
||||
#include <xen/page.h>
|
||||
|
||||
extern bool xen_scrub_pages;
|
||||
|
||||
static inline void xenmem_reservation_scrub_page(struct page *page)
|
||||
{
|
||||
#ifdef CONFIG_XEN_SCRUB_PAGES
|
||||
clear_highpage(page);
|
||||
#endif
|
||||
if (xen_scrub_pages)
|
||||
clear_highpage(page);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_XEN_HAVE_PVMMU
|
||||
|
||||
Reference in New Issue
Block a user