Merge branches 'arm/rockchip', 'arm/exynos', 'arm/smmu', 'x86/vt-d', 'x86/amd', 'default-domains' and 'core' into next
This commit is contained in:
commit
5ffde2f671
1078 changed files with 15528 additions and 8703 deletions
|
|
@ -116,7 +116,6 @@ __printf(3, 4)
|
|||
int bdi_register(struct backing_dev_info *bdi, struct device *parent,
|
||||
const char *fmt, ...);
|
||||
int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev);
|
||||
void bdi_unregister(struct backing_dev_info *bdi);
|
||||
int __must_check bdi_setup_and_register(struct backing_dev_info *, char *);
|
||||
void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages,
|
||||
enum wb_reason reason);
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ enum rq_flag_bits {
|
|||
|
||||
/* This mask is used for both bio and request merge checking */
|
||||
#define REQ_NOMERGE_FLAGS \
|
||||
(REQ_NOMERGE | REQ_STARTED | REQ_SOFTBARRIER | REQ_FLUSH | REQ_FUA)
|
||||
(REQ_NOMERGE | REQ_STARTED | REQ_SOFTBARRIER | REQ_FLUSH | REQ_FUA | REQ_FLUSH_SEQ)
|
||||
|
||||
#define REQ_RAHEAD (1ULL << __REQ_RAHEAD)
|
||||
#define REQ_THROTTLED (1ULL << __REQ_THROTTLED)
|
||||
|
|
|
|||
|
|
@ -821,8 +821,6 @@ extern int scsi_cmd_ioctl(struct request_queue *, struct gendisk *, fmode_t,
|
|||
extern int sg_scsi_ioctl(struct request_queue *, struct gendisk *, fmode_t,
|
||||
struct scsi_ioctl_command __user *);
|
||||
|
||||
extern void blk_queue_bio(struct request_queue *q, struct bio *bio);
|
||||
|
||||
/*
|
||||
* A queue has just exitted congestion. Note this in the global counter of
|
||||
* congested queues, and wake up anyone who was waiting for requests to be
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
#define PHY_ID_BCM7250 0xae025280
|
||||
#define PHY_ID_BCM7364 0xae025260
|
||||
#define PHY_ID_BCM7366 0x600d8490
|
||||
#define PHY_ID_BCM7425 0x03625e60
|
||||
#define PHY_ID_BCM7425 0x600d86b0
|
||||
#define PHY_ID_BCM7429 0x600d8730
|
||||
#define PHY_ID_BCM7439 0x600d8480
|
||||
#define PHY_ID_BCM7439_2 0xae025080
|
||||
|
|
|
|||
|
|
@ -9,10 +9,24 @@
|
|||
+ __GNUC_MINOR__ * 100 \
|
||||
+ __GNUC_PATCHLEVEL__)
|
||||
|
||||
|
||||
/* Optimization barrier */
|
||||
|
||||
/* The "volatile" is due to gcc bugs */
|
||||
#define barrier() __asm__ __volatile__("": : :"memory")
|
||||
/*
|
||||
* This version is i.e. to prevent dead stores elimination on @ptr
|
||||
* where gcc and llvm may behave differently when otherwise using
|
||||
* normal barrier(): while gcc behavior gets along with a normal
|
||||
* barrier(), llvm needs an explicit input variable to be assumed
|
||||
* clobbered. The issue is as follows: while the inline asm might
|
||||
* access any memory it wants, the compiler could have fit all of
|
||||
* @ptr into memory registers instead, and since @ptr never escaped
|
||||
* from that, it proofed that the inline asm wasn't touching any of
|
||||
* it. This version works well with both compilers, i.e. we're telling
|
||||
* the compiler that the inline asm absolutely may see the contents
|
||||
* of @ptr. See also: https://llvm.org/bugs/show_bug.cgi?id=15495
|
||||
*/
|
||||
#define barrier_data(ptr) __asm__ __volatile__("": :"r"(ptr) :"memory")
|
||||
|
||||
/*
|
||||
* This macro obfuscates arithmetic on a variable address so that gcc
|
||||
|
|
|
|||
|
|
@ -13,9 +13,12 @@
|
|||
/* Intel ECC compiler doesn't support gcc specific asm stmts.
|
||||
* It uses intrinsics to do the equivalent things.
|
||||
*/
|
||||
#undef barrier_data
|
||||
#undef RELOC_HIDE
|
||||
#undef OPTIMIZER_HIDE_VAR
|
||||
|
||||
#define barrier_data(ptr) barrier()
|
||||
|
||||
#define RELOC_HIDE(ptr, off) \
|
||||
({ unsigned long __ptr; \
|
||||
__ptr = (unsigned long) (ptr); \
|
||||
|
|
|
|||
|
|
@ -169,6 +169,10 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
|
|||
# define barrier() __memory_barrier()
|
||||
#endif
|
||||
|
||||
#ifndef barrier_data
|
||||
# define barrier_data(ptr) barrier()
|
||||
#endif
|
||||
|
||||
/* Unreachable code */
|
||||
#ifndef unreachable
|
||||
# define unreachable() do { } while (1)
|
||||
|
|
|
|||
|
|
@ -151,10 +151,8 @@ static inline unsigned int cpumask_any_but(const struct cpumask *mask,
|
|||
return 1;
|
||||
}
|
||||
|
||||
static inline int cpumask_set_cpu_local_first(int i, int numa_node, cpumask_t *dstp)
|
||||
static inline unsigned int cpumask_local_spread(unsigned int i, int node)
|
||||
{
|
||||
set_bit(0, cpumask_bits(dstp));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -208,7 +206,7 @@ static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
|
|||
|
||||
int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *);
|
||||
int cpumask_any_but(const struct cpumask *mask, unsigned int cpu);
|
||||
int cpumask_set_cpu_local_first(int i, int numa_node, cpumask_t *dstp);
|
||||
unsigned int cpumask_local_spread(unsigned int i, int node);
|
||||
|
||||
/**
|
||||
* for_each_cpu - iterate over every cpu in a mask
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ const char *ftrace_print_hex_seq(struct trace_seq *p,
|
|||
const unsigned char *buf, int len);
|
||||
|
||||
const char *ftrace_print_array_seq(struct trace_seq *p,
|
||||
const void *buf, int buf_len,
|
||||
const void *buf, int count,
|
||||
size_t el_size);
|
||||
|
||||
struct trace_iterator;
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ struct vm_area_struct;
|
|||
#define ___GFP_HARDWALL 0x20000u
|
||||
#define ___GFP_THISNODE 0x40000u
|
||||
#define ___GFP_RECLAIMABLE 0x80000u
|
||||
#define ___GFP_NOACCOUNT 0x100000u
|
||||
#define ___GFP_NOTRACK 0x200000u
|
||||
#define ___GFP_NO_KSWAPD 0x400000u
|
||||
#define ___GFP_OTHER_NODE 0x800000u
|
||||
|
|
@ -87,6 +88,7 @@ struct vm_area_struct;
|
|||
#define __GFP_HARDWALL ((__force gfp_t)___GFP_HARDWALL) /* Enforce hardwall cpuset memory allocs */
|
||||
#define __GFP_THISNODE ((__force gfp_t)___GFP_THISNODE)/* No fallback, no policies */
|
||||
#define __GFP_RECLAIMABLE ((__force gfp_t)___GFP_RECLAIMABLE) /* Page is reclaimable */
|
||||
#define __GFP_NOACCOUNT ((__force gfp_t)___GFP_NOACCOUNT) /* Don't account to kmemcg */
|
||||
#define __GFP_NOTRACK ((__force gfp_t)___GFP_NOTRACK) /* Don't track with kmemcheck */
|
||||
|
||||
#define __GFP_NO_KSWAPD ((__force gfp_t)___GFP_NO_KSWAPD)
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ struct sensor_hub_pending {
|
|||
* @usage: Usage id for this hub device instance.
|
||||
* @start_collection_index: Starting index for a phy type collection
|
||||
* @end_collection_index: Last index for a phy type collection
|
||||
* @mutex: synchronizing mutex.
|
||||
* @mutex_ptr: synchronizing mutex pointer.
|
||||
* @pending: Holds information of pending sync read request.
|
||||
*/
|
||||
struct hid_sensor_hub_device {
|
||||
|
|
@ -84,7 +84,7 @@ struct hid_sensor_hub_device {
|
|||
u32 usage;
|
||||
int start_collection_index;
|
||||
int end_collection_index;
|
||||
struct mutex mutex;
|
||||
struct mutex *mutex_ptr;
|
||||
struct sensor_hub_pending pending;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -115,13 +115,14 @@ static inline void dmar_writeq(void __iomem *addr, u64 val)
|
|||
* Extended Capability Register
|
||||
*/
|
||||
|
||||
#define ecap_pasid(e) ((e >> 40) & 0x1)
|
||||
#define ecap_pss(e) ((e >> 35) & 0x1f)
|
||||
#define ecap_eafs(e) ((e >> 34) & 0x1)
|
||||
#define ecap_nwfs(e) ((e >> 33) & 0x1)
|
||||
#define ecap_srs(e) ((e >> 31) & 0x1)
|
||||
#define ecap_ers(e) ((e >> 30) & 0x1)
|
||||
#define ecap_prs(e) ((e >> 29) & 0x1)
|
||||
#define ecap_pasid(e) ((e >> 28) & 0x1)
|
||||
/* PASID support used to be on bit 28 */
|
||||
#define ecap_dis(e) ((e >> 27) & 0x1)
|
||||
#define ecap_nest(e) ((e >> 26) & 0x1)
|
||||
#define ecap_mts(e) ((e >> 25) & 0x1)
|
||||
|
|
@ -295,6 +296,7 @@ struct q_inval {
|
|||
/* 1MB - maximum possible interrupt remapping table size */
|
||||
#define INTR_REMAP_PAGE_ORDER 8
|
||||
#define INTR_REMAP_TABLE_REG_SIZE 0xf
|
||||
#define INTR_REMAP_TABLE_REG_SIZE_MASK 0xf
|
||||
|
||||
#define INTR_REMAP_TABLE_ENTRIES 65536
|
||||
|
||||
|
|
@ -319,6 +321,9 @@ enum {
|
|||
MAX_SR_DMAR_REGS
|
||||
};
|
||||
|
||||
#define VTD_FLAG_TRANS_PRE_ENABLED (1 << 0)
|
||||
#define VTD_FLAG_IRQ_REMAP_PRE_ENABLED (1 << 1)
|
||||
|
||||
struct intel_iommu {
|
||||
void __iomem *reg; /* Pointer to hardware regs, virtual addr */
|
||||
u64 reg_phys; /* physical address of hw register set */
|
||||
|
|
@ -350,6 +355,7 @@ struct intel_iommu {
|
|||
#endif
|
||||
struct device *iommu_dev; /* IOMMU-sysfs device */
|
||||
int node;
|
||||
u32 flags; /* Software defined flags */
|
||||
};
|
||||
|
||||
static inline void __iommu_flush_cache(
|
||||
|
|
|
|||
|
|
@ -114,6 +114,20 @@ enum iommu_attr {
|
|||
DOMAIN_ATTR_MAX,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_dm_region - descriptor for a direct mapped memory region
|
||||
* @list: Linked list pointers
|
||||
* @start: System physical start address of the region
|
||||
* @length: Length of the region in bytes
|
||||
* @prot: IOMMU Protection flags (READ/WRITE/...)
|
||||
*/
|
||||
struct iommu_dm_region {
|
||||
struct list_head list;
|
||||
phys_addr_t start;
|
||||
size_t length;
|
||||
int prot;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_IOMMU_API
|
||||
|
||||
/**
|
||||
|
|
@ -159,6 +173,10 @@ struct iommu_ops {
|
|||
int (*domain_set_attr)(struct iommu_domain *domain,
|
||||
enum iommu_attr attr, void *data);
|
||||
|
||||
/* Request/Free a list of direct mapping requirements for a device */
|
||||
void (*get_dm_regions)(struct device *dev, struct list_head *list);
|
||||
void (*put_dm_regions)(struct device *dev, struct list_head *list);
|
||||
|
||||
/* Window handling functions */
|
||||
int (*domain_window_enable)(struct iommu_domain *domain, u32 wnd_nr,
|
||||
phys_addr_t paddr, u64 size, int prot);
|
||||
|
|
@ -193,6 +211,7 @@ extern int iommu_attach_device(struct iommu_domain *domain,
|
|||
struct device *dev);
|
||||
extern void iommu_detach_device(struct iommu_domain *domain,
|
||||
struct device *dev);
|
||||
extern struct iommu_domain *iommu_get_domain_for_dev(struct device *dev);
|
||||
extern int iommu_map(struct iommu_domain *domain, unsigned long iova,
|
||||
phys_addr_t paddr, size_t size, int prot);
|
||||
extern size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova,
|
||||
|
|
@ -204,6 +223,10 @@ extern phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t io
|
|||
extern void iommu_set_fault_handler(struct iommu_domain *domain,
|
||||
iommu_fault_handler_t handler, void *token);
|
||||
|
||||
extern void iommu_get_dm_regions(struct device *dev, struct list_head *list);
|
||||
extern void iommu_put_dm_regions(struct device *dev, struct list_head *list);
|
||||
extern int iommu_request_dm_for_dev(struct device *dev);
|
||||
|
||||
extern int iommu_attach_group(struct iommu_domain *domain,
|
||||
struct iommu_group *group);
|
||||
extern void iommu_detach_group(struct iommu_domain *domain,
|
||||
|
|
@ -227,6 +250,7 @@ extern int iommu_group_unregister_notifier(struct iommu_group *group,
|
|||
struct notifier_block *nb);
|
||||
extern int iommu_group_id(struct iommu_group *group);
|
||||
extern struct iommu_group *iommu_group_get_for_dev(struct device *dev);
|
||||
extern struct iommu_domain *iommu_group_default_domain(struct iommu_group *);
|
||||
|
||||
extern int iommu_domain_get_attr(struct iommu_domain *domain, enum iommu_attr,
|
||||
void *data);
|
||||
|
|
@ -332,6 +356,11 @@ static inline void iommu_detach_device(struct iommu_domain *domain,
|
|||
{
|
||||
}
|
||||
|
||||
static inline struct iommu_domain *iommu_get_domain_for_dev(struct device *dev)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline int iommu_map(struct iommu_domain *domain, unsigned long iova,
|
||||
phys_addr_t paddr, int gfp_order, int prot)
|
||||
{
|
||||
|
|
@ -373,6 +402,21 @@ static inline void iommu_set_fault_handler(struct iommu_domain *domain,
|
|||
{
|
||||
}
|
||||
|
||||
static inline void iommu_get_dm_regions(struct device *dev,
|
||||
struct list_head *list)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void iommu_put_dm_regions(struct device *dev,
|
||||
struct list_head *list)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int iommu_request_dm_for_dev(struct device *dev)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static inline int iommu_attach_group(struct iommu_domain *domain,
|
||||
struct iommu_group *group)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -95,8 +95,6 @@
|
|||
|
||||
struct device_node;
|
||||
|
||||
extern struct irq_chip gic_arch_extn;
|
||||
|
||||
void gic_set_irqchip_flags(unsigned long flags);
|
||||
void gic_init_bases(unsigned int, int, void __iomem *, void __iomem *,
|
||||
u32 offset, struct device_node *);
|
||||
|
|
|
|||
|
|
@ -166,19 +166,34 @@ static inline bool ktime_before(const ktime_t cmp1, const ktime_t cmp2)
|
|||
}
|
||||
|
||||
#if BITS_PER_LONG < 64
|
||||
extern u64 __ktime_divns(const ktime_t kt, s64 div);
|
||||
static inline u64 ktime_divns(const ktime_t kt, s64 div)
|
||||
extern s64 __ktime_divns(const ktime_t kt, s64 div);
|
||||
static inline s64 ktime_divns(const ktime_t kt, s64 div)
|
||||
{
|
||||
/*
|
||||
* Negative divisors could cause an inf loop,
|
||||
* so bug out here.
|
||||
*/
|
||||
BUG_ON(div < 0);
|
||||
if (__builtin_constant_p(div) && !(div >> 32)) {
|
||||
u64 ns = kt.tv64;
|
||||
do_div(ns, div);
|
||||
return ns;
|
||||
s64 ns = kt.tv64;
|
||||
u64 tmp = ns < 0 ? -ns : ns;
|
||||
|
||||
do_div(tmp, div);
|
||||
return ns < 0 ? -tmp : tmp;
|
||||
} else {
|
||||
return __ktime_divns(kt, div);
|
||||
}
|
||||
}
|
||||
#else /* BITS_PER_LONG < 64 */
|
||||
# define ktime_divns(kt, div) (u64)((kt).tv64 / (div))
|
||||
static inline s64 ktime_divns(const ktime_t kt, s64 div)
|
||||
{
|
||||
/*
|
||||
* 32-bit implementation cannot handle negative divisors,
|
||||
* so catch them on 64bit as well.
|
||||
*/
|
||||
WARN_ON(div < 0);
|
||||
return kt.tv64 / div;
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline s64 ktime_to_us(const ktime_t kt)
|
||||
|
|
|
|||
|
|
@ -205,6 +205,7 @@ enum {
|
|||
ATA_LFLAG_SW_ACTIVITY = (1 << 7), /* keep activity stats */
|
||||
ATA_LFLAG_NO_LPM = (1 << 8), /* disable LPM on this link */
|
||||
ATA_LFLAG_RST_ONCE = (1 << 9), /* limit recovery to one reset */
|
||||
ATA_LFLAG_CHANGED = (1 << 10), /* LPM state changed on this link */
|
||||
|
||||
/* struct ata_port flags */
|
||||
ATA_FLAG_SLAVE_POSS = (1 << 0), /* host supports slave dev */
|
||||
|
|
@ -309,6 +310,12 @@ enum {
|
|||
*/
|
||||
ATA_TMOUT_PMP_SRST_WAIT = 5000,
|
||||
|
||||
/* When the LPM policy is set to ATA_LPM_MAX_POWER, there might
|
||||
* be a spurious PHY event, so ignore the first PHY event that
|
||||
* occurs within 10s after the policy change.
|
||||
*/
|
||||
ATA_TMOUT_SPURIOUS_PHY = 10000,
|
||||
|
||||
/* ATA bus states */
|
||||
BUS_UNKNOWN = 0,
|
||||
BUS_DMA = 1,
|
||||
|
|
@ -788,6 +795,8 @@ struct ata_link {
|
|||
struct ata_eh_context eh_context;
|
||||
|
||||
struct ata_device device[ATA_MAX_DEVICES];
|
||||
|
||||
unsigned long last_lpm_change; /* when last LPM change happened */
|
||||
};
|
||||
#define ATA_LINK_CLEAR_BEGIN offsetof(struct ata_link, active_tag)
|
||||
#define ATA_LINK_CLEAR_END offsetof(struct ata_link, device[0])
|
||||
|
|
@ -1201,6 +1210,7 @@ extern struct ata_device *ata_dev_pair(struct ata_device *adev);
|
|||
extern int ata_do_set_mode(struct ata_link *link, struct ata_device **r_failed_dev);
|
||||
extern void ata_scsi_port_error_handler(struct Scsi_Host *host, struct ata_port *ap);
|
||||
extern void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *ap, struct list_head *eh_q);
|
||||
extern bool sata_lpm_ignore_phy_events(struct ata_link *link);
|
||||
|
||||
extern int ata_cable_40wire(struct ata_port *ap);
|
||||
extern int ata_cable_80wire(struct ata_port *ap);
|
||||
|
|
|
|||
|
|
@ -463,6 +463,8 @@ memcg_kmem_newpage_charge(gfp_t gfp, struct mem_cgroup **memcg, int order)
|
|||
if (!memcg_kmem_enabled())
|
||||
return true;
|
||||
|
||||
if (gfp & __GFP_NOACCOUNT)
|
||||
return true;
|
||||
/*
|
||||
* __GFP_NOFAIL allocations will move on even if charging is not
|
||||
* possible. Therefore we don't even try, and have this allocation
|
||||
|
|
@ -522,6 +524,8 @@ memcg_kmem_get_cache(struct kmem_cache *cachep, gfp_t gfp)
|
|||
{
|
||||
if (!memcg_kmem_enabled())
|
||||
return cachep;
|
||||
if (gfp & __GFP_NOACCOUNT)
|
||||
return cachep;
|
||||
if (gfp & __GFP_NOFAIL)
|
||||
return cachep;
|
||||
if (in_interrupt() || (!current->mm) || (current->flags & PF_KTHREAD))
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@
|
|||
#ifndef _LINUX_NETDEVICE_H
|
||||
#define _LINUX_NETDEVICE_H
|
||||
|
||||
#include <linux/pm_qos.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/bug.h>
|
||||
#include <linux/delay.h>
|
||||
|
|
@ -1499,8 +1498,6 @@ enum netdev_priv_flags {
|
|||
*
|
||||
* @qdisc_tx_busylock: XXX: need comments on this one
|
||||
*
|
||||
* @pm_qos_req: Power Management QoS object
|
||||
*
|
||||
* FIXME: cleanup struct net_device such that network protocol info
|
||||
* moves out.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -460,7 +460,7 @@ struct nilfs_btree_node {
|
|||
/* level */
|
||||
#define NILFS_BTREE_LEVEL_DATA 0
|
||||
#define NILFS_BTREE_LEVEL_NODE_MIN (NILFS_BTREE_LEVEL_DATA + 1)
|
||||
#define NILFS_BTREE_LEVEL_MAX 14
|
||||
#define NILFS_BTREE_LEVEL_MAX 14 /* Max level (exclusive) */
|
||||
|
||||
/**
|
||||
* struct nilfs_palloc_group_desc - block group descriptor
|
||||
|
|
|
|||
|
|
@ -121,6 +121,8 @@ extern struct device_node *of_stdout;
|
|||
extern raw_spinlock_t devtree_lock;
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
void of_core_init(void);
|
||||
|
||||
static inline bool is_of_node(struct fwnode_handle *fwnode)
|
||||
{
|
||||
return fwnode && fwnode->type == FWNODE_OF;
|
||||
|
|
@ -376,6 +378,10 @@ bool of_console_check(struct device_node *dn, char *name, int index);
|
|||
|
||||
#else /* CONFIG_OF */
|
||||
|
||||
static inline void of_core_init(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline bool is_of_node(struct fwnode_handle *fwnode)
|
||||
{
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -2541,10 +2541,6 @@
|
|||
|
||||
#define PCI_VENDOR_ID_INTEL 0x8086
|
||||
#define PCI_DEVICE_ID_INTEL_EESSC 0x0008
|
||||
#define PCI_DEVICE_ID_INTEL_SNB_IMC 0x0100
|
||||
#define PCI_DEVICE_ID_INTEL_IVB_IMC 0x0154
|
||||
#define PCI_DEVICE_ID_INTEL_IVB_E3_IMC 0x0150
|
||||
#define PCI_DEVICE_ID_INTEL_HSW_IMC 0x0c00
|
||||
#define PCI_DEVICE_ID_INTEL_PXHD_0 0x0320
|
||||
#define PCI_DEVICE_ID_INTEL_PXHD_1 0x0321
|
||||
#define PCI_DEVICE_ID_INTEL_PXH_0 0x0329
|
||||
|
|
|
|||
|
|
@ -41,7 +41,12 @@ void percpu_counter_destroy(struct percpu_counter *fbc);
|
|||
void percpu_counter_set(struct percpu_counter *fbc, s64 amount);
|
||||
void __percpu_counter_add(struct percpu_counter *fbc, s64 amount, s32 batch);
|
||||
s64 __percpu_counter_sum(struct percpu_counter *fbc);
|
||||
int percpu_counter_compare(struct percpu_counter *fbc, s64 rhs);
|
||||
int __percpu_counter_compare(struct percpu_counter *fbc, s64 rhs, s32 batch);
|
||||
|
||||
static inline int percpu_counter_compare(struct percpu_counter *fbc, s64 rhs)
|
||||
{
|
||||
return __percpu_counter_compare(fbc, rhs, percpu_counter_batch);
|
||||
}
|
||||
|
||||
static inline void percpu_counter_add(struct percpu_counter *fbc, s64 amount)
|
||||
{
|
||||
|
|
@ -116,6 +121,12 @@ static inline int percpu_counter_compare(struct percpu_counter *fbc, s64 rhs)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__percpu_counter_compare(struct percpu_counter *fbc, s64 rhs, s32 batch)
|
||||
{
|
||||
return percpu_counter_compare(fbc, rhs);
|
||||
}
|
||||
|
||||
static inline void
|
||||
percpu_counter_add(struct percpu_counter *fbc, s64 amount)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -92,8 +92,6 @@ struct hw_perf_event_extra {
|
|||
int idx; /* index in shared_regs->regs[] */
|
||||
};
|
||||
|
||||
struct event_constraint;
|
||||
|
||||
/**
|
||||
* struct hw_perf_event - performance event hardware details:
|
||||
*/
|
||||
|
|
@ -112,8 +110,6 @@ struct hw_perf_event {
|
|||
|
||||
struct hw_perf_event_extra extra_reg;
|
||||
struct hw_perf_event_extra branch_reg;
|
||||
|
||||
struct event_constraint *constraint;
|
||||
};
|
||||
struct { /* software */
|
||||
struct hrtimer hrtimer;
|
||||
|
|
|
|||
|
|
@ -5,8 +5,6 @@
|
|||
#ifndef __LINUX_PLATFORM_DATA_SI5351_H__
|
||||
#define __LINUX_PLATFORM_DATA_SI5351_H__
|
||||
|
||||
struct clk;
|
||||
|
||||
/**
|
||||
* enum si5351_pll_src - Si5351 pll clock source
|
||||
* @SI5351_PLL_SRC_DEFAULT: default, do not change eeprom config
|
||||
|
|
@ -107,8 +105,6 @@ struct si5351_clkout_config {
|
|||
* @clkout: array of clkout configuration
|
||||
*/
|
||||
struct si5351_platform_data {
|
||||
struct clk *clk_xtal;
|
||||
struct clk *clk_clkin;
|
||||
enum si5351_pll_src pll_src[2];
|
||||
struct si5351_clkout_config clkout[8];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#ifndef _LINUX_RHASHTABLE_H
|
||||
#define _LINUX_RHASHTABLE_H
|
||||
|
||||
#include <linux/atomic.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/jhash.h>
|
||||
|
|
@ -100,6 +101,7 @@ struct rhashtable;
|
|||
* @key_len: Length of key
|
||||
* @key_offset: Offset of key in struct to be hashed
|
||||
* @head_offset: Offset of rhash_head in struct to be hashed
|
||||
* @insecure_max_entries: Maximum number of entries (may be exceeded)
|
||||
* @max_size: Maximum size while expanding
|
||||
* @min_size: Minimum size while shrinking
|
||||
* @nulls_base: Base value to generate nulls marker
|
||||
|
|
@ -115,6 +117,7 @@ struct rhashtable_params {
|
|||
size_t key_len;
|
||||
size_t key_offset;
|
||||
size_t head_offset;
|
||||
unsigned int insecure_max_entries;
|
||||
unsigned int max_size;
|
||||
unsigned int min_size;
|
||||
u32 nulls_base;
|
||||
|
|
@ -286,6 +289,18 @@ static inline bool rht_grow_above_100(const struct rhashtable *ht,
|
|||
(!ht->p.max_size || tbl->size < ht->p.max_size);
|
||||
}
|
||||
|
||||
/**
|
||||
* rht_grow_above_max - returns true if table is above maximum
|
||||
* @ht: hash table
|
||||
* @tbl: current table
|
||||
*/
|
||||
static inline bool rht_grow_above_max(const struct rhashtable *ht,
|
||||
const struct bucket_table *tbl)
|
||||
{
|
||||
return ht->p.insecure_max_entries &&
|
||||
atomic_read(&ht->nelems) >= ht->p.insecure_max_entries;
|
||||
}
|
||||
|
||||
/* The bucket lock is selected based on the hash and protects mutations
|
||||
* on a group of hash buckets.
|
||||
*
|
||||
|
|
@ -589,6 +604,10 @@ restart:
|
|||
goto out;
|
||||
}
|
||||
|
||||
err = -E2BIG;
|
||||
if (unlikely(rht_grow_above_max(ht, tbl)))
|
||||
goto out;
|
||||
|
||||
if (unlikely(rht_grow_above_100(ht, tbl))) {
|
||||
slow_path:
|
||||
spin_unlock_bh(lock);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ static inline int rt_task(struct task_struct *p)
|
|||
#ifdef CONFIG_RT_MUTEXES
|
||||
extern int rt_mutex_getprio(struct task_struct *p);
|
||||
extern void rt_mutex_setprio(struct task_struct *p, int prio);
|
||||
extern int rt_mutex_check_prio(struct task_struct *task, int newprio);
|
||||
extern int rt_mutex_get_effective_prio(struct task_struct *task, int newprio);
|
||||
extern struct task_struct *rt_mutex_get_top_task(struct task_struct *task);
|
||||
extern void rt_mutex_adjust_pi(struct task_struct *p);
|
||||
static inline bool tsk_is_pi_blocked(struct task_struct *tsk)
|
||||
|
|
@ -31,9 +31,10 @@ static inline int rt_mutex_getprio(struct task_struct *p)
|
|||
return p->normal_prio;
|
||||
}
|
||||
|
||||
static inline int rt_mutex_check_prio(struct task_struct *task, int newprio)
|
||||
static inline int rt_mutex_get_effective_prio(struct task_struct *task,
|
||||
int newprio)
|
||||
{
|
||||
return 0;
|
||||
return newprio;
|
||||
}
|
||||
|
||||
static inline struct task_struct *rt_mutex_get_top_task(struct task_struct *task)
|
||||
|
|
|
|||
|
|
@ -176,6 +176,7 @@ struct nf_bridge_info {
|
|||
struct net_device *physindev;
|
||||
struct net_device *physoutdev;
|
||||
char neigh_header[8];
|
||||
__be32 ipv4_daddr;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -145,11 +145,21 @@ struct tcp_sock {
|
|||
* read the code and the spec side by side (and laugh ...)
|
||||
* See RFC793 and RFC1122. The RFC writes these in capitals.
|
||||
*/
|
||||
u64 bytes_received; /* RFC4898 tcpEStatsAppHCThruOctetsReceived
|
||||
* sum(delta(rcv_nxt)), or how many bytes
|
||||
* were acked.
|
||||
*/
|
||||
u32 rcv_nxt; /* What we want to receive next */
|
||||
u32 copied_seq; /* Head of yet unread data */
|
||||
u32 rcv_wup; /* rcv_nxt on last window update sent */
|
||||
u32 snd_nxt; /* Next sequence we send */
|
||||
|
||||
u64 bytes_acked; /* RFC4898 tcpEStatsAppHCThruOctetsAcked
|
||||
* sum(delta(snd_una)), or how many bytes
|
||||
* were acked.
|
||||
*/
|
||||
struct u64_stats_sync syncp; /* protects 64bit vars (cf tcp_get_info()) */
|
||||
|
||||
u32 snd_una; /* First byte we want an ack for */
|
||||
u32 snd_sml; /* Last byte of the most recently transmitted small packet */
|
||||
u32 rcv_tstamp; /* timestamp of last received ACK (for keepalives) */
|
||||
|
|
|
|||
|
|
@ -339,6 +339,7 @@ struct tty_file_private {
|
|||
#define TTY_EXCLUSIVE 3 /* Exclusive open mode */
|
||||
#define TTY_DEBUG 4 /* Debugging */
|
||||
#define TTY_DO_WRITE_WAKEUP 5 /* Call write_wakeup after queuing new */
|
||||
#define TTY_OTHER_DONE 6 /* Closed pty has completed input processing */
|
||||
#define TTY_LDISC_OPEN 11 /* Line discipline is open */
|
||||
#define TTY_PTY_LOCK 16 /* pty private */
|
||||
#define TTY_NO_WRITE_SPLIT 17 /* Preserve write boundaries to driver */
|
||||
|
|
@ -462,7 +463,6 @@ extern int tty_hung_up_p(struct file *filp);
|
|||
extern void do_SAK(struct tty_struct *tty);
|
||||
extern void __do_SAK(struct tty_struct *tty);
|
||||
extern void no_tty(void);
|
||||
extern void tty_flush_to_ldisc(struct tty_struct *tty);
|
||||
extern void tty_buffer_free_all(struct tty_port *port);
|
||||
extern void tty_buffer_flush(struct tty_struct *tty, struct tty_ldisc *ld);
|
||||
extern void tty_buffer_init(struct tty_port *port);
|
||||
|
|
|
|||
|
|
@ -109,12 +109,12 @@ static inline bool gid_lte(kgid_t left, kgid_t right)
|
|||
|
||||
static inline bool uid_valid(kuid_t uid)
|
||||
{
|
||||
return !uid_eq(uid, INVALID_UID);
|
||||
return __kuid_val(uid) != (uid_t) -1;
|
||||
}
|
||||
|
||||
static inline bool gid_valid(kgid_t gid)
|
||||
{
|
||||
return !gid_eq(gid, INVALID_GID);
|
||||
return __kgid_val(gid) != (gid_t) -1;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_USER_NS
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
({ \
|
||||
typeof(as) __fc_i, __fc_as = (as) - 1; \
|
||||
typeof(x) __fc_x = (x); \
|
||||
typeof(*a) *__fc_a = (a); \
|
||||
typeof(*a) const *__fc_a = (a); \
|
||||
for (__fc_i = 0; __fc_i < __fc_as; __fc_i++) { \
|
||||
if (__fc_x op DIV_ROUND_CLOSEST(__fc_a[__fc_i] + \
|
||||
__fc_a[__fc_i + 1], 2)) \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue