Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Two minor conflicts in virtio_net driver (bug fix overlapping addition of a helper) and MAINTAINERS (new driver edit overlapping revamp of PHY entry). Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -87,6 +87,7 @@ size_t dax_copy_from_iter(struct dax_device *dax_dev, pgoff_t pgoff, void *addr,
|
||||
void dax_flush(struct dax_device *dax_dev, pgoff_t pgoff, void *addr,
|
||||
size_t size);
|
||||
void dax_write_cache(struct dax_device *dax_dev, bool wc);
|
||||
bool dax_write_cache_enabled(struct dax_device *dax_dev);
|
||||
|
||||
/*
|
||||
* We use lowest available bit in exceptional entry for locking, one bit for
|
||||
|
@@ -55,6 +55,7 @@ struct dma_fence_cb;
|
||||
* of the time.
|
||||
*
|
||||
* DMA_FENCE_FLAG_SIGNALED_BIT - fence is already signaled
|
||||
* DMA_FENCE_FLAG_TIMESTAMP_BIT - timestamp recorded for fence signaling
|
||||
* DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT - enable_signaling might have been called
|
||||
* DMA_FENCE_FLAG_USER_BITS - start of the unused bits, can be used by the
|
||||
* implementer of the fence for its own purposes. Can be used in different
|
||||
@@ -84,6 +85,7 @@ struct dma_fence {
|
||||
|
||||
enum dma_fence_flag_bits {
|
||||
DMA_FENCE_FLAG_SIGNALED_BIT,
|
||||
DMA_FENCE_FLAG_TIMESTAMP_BIT,
|
||||
DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
|
||||
DMA_FENCE_FLAG_USER_BITS, /* must always be last member */
|
||||
};
|
||||
|
@@ -157,16 +157,40 @@ static inline int is_device_dma_capable(struct device *dev)
|
||||
* These three functions are only for dma allocator.
|
||||
* Don't use them in device drivers.
|
||||
*/
|
||||
int dma_alloc_from_coherent(struct device *dev, ssize_t size,
|
||||
int dma_alloc_from_dev_coherent(struct device *dev, ssize_t size,
|
||||
dma_addr_t *dma_handle, void **ret);
|
||||
int dma_release_from_coherent(struct device *dev, int order, void *vaddr);
|
||||
int dma_release_from_dev_coherent(struct device *dev, int order, void *vaddr);
|
||||
|
||||
int dma_mmap_from_coherent(struct device *dev, struct vm_area_struct *vma,
|
||||
int dma_mmap_from_dev_coherent(struct device *dev, struct vm_area_struct *vma,
|
||||
void *cpu_addr, size_t size, int *ret);
|
||||
|
||||
void *dma_alloc_from_global_coherent(ssize_t size, dma_addr_t *dma_handle);
|
||||
int dma_release_from_global_coherent(int order, void *vaddr);
|
||||
int dma_mmap_from_global_coherent(struct vm_area_struct *vma, void *cpu_addr,
|
||||
size_t size, int *ret);
|
||||
|
||||
#else
|
||||
#define dma_alloc_from_coherent(dev, size, handle, ret) (0)
|
||||
#define dma_release_from_coherent(dev, order, vaddr) (0)
|
||||
#define dma_mmap_from_coherent(dev, vma, vaddr, order, ret) (0)
|
||||
#define dma_alloc_from_dev_coherent(dev, size, handle, ret) (0)
|
||||
#define dma_release_from_dev_coherent(dev, order, vaddr) (0)
|
||||
#define dma_mmap_from_dev_coherent(dev, vma, vaddr, order, ret) (0)
|
||||
|
||||
static inline void *dma_alloc_from_global_coherent(ssize_t size,
|
||||
dma_addr_t *dma_handle)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline int dma_release_from_global_coherent(int order, void *vaddr)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int dma_mmap_from_global_coherent(struct vm_area_struct *vma,
|
||||
void *cpu_addr, size_t size,
|
||||
int *ret)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_HAVE_GENERIC_DMA_COHERENT */
|
||||
|
||||
#ifdef CONFIG_HAS_DMA
|
||||
@@ -481,7 +505,7 @@ static inline void *dma_alloc_attrs(struct device *dev, size_t size,
|
||||
|
||||
BUG_ON(!ops);
|
||||
|
||||
if (dma_alloc_from_coherent(dev, size, dma_handle, &cpu_addr))
|
||||
if (dma_alloc_from_dev_coherent(dev, size, dma_handle, &cpu_addr))
|
||||
return cpu_addr;
|
||||
|
||||
if (!arch_dma_alloc_attrs(&dev, &flag))
|
||||
@@ -503,7 +527,7 @@ static inline void dma_free_attrs(struct device *dev, size_t size,
|
||||
BUG_ON(!ops);
|
||||
WARN_ON(irqs_disabled());
|
||||
|
||||
if (dma_release_from_coherent(dev, get_order(size), cpu_addr))
|
||||
if (dma_release_from_dev_coherent(dev, get_order(size), cpu_addr))
|
||||
return;
|
||||
|
||||
if (!ops->free || !cpu_addr)
|
||||
|
@@ -145,8 +145,8 @@ enum {
|
||||
#ifdef CONFIG_DYNAMIC_FTRACE
|
||||
/* The hash used to know what functions callbacks trace */
|
||||
struct ftrace_ops_hash {
|
||||
struct ftrace_hash *notrace_hash;
|
||||
struct ftrace_hash *filter_hash;
|
||||
struct ftrace_hash __rcu *notrace_hash;
|
||||
struct ftrace_hash __rcu *filter_hash;
|
||||
struct mutex regex_lock;
|
||||
};
|
||||
|
||||
@@ -168,7 +168,7 @@ static inline void ftrace_free_init_mem(void) { }
|
||||
*/
|
||||
struct ftrace_ops {
|
||||
ftrace_func_t func;
|
||||
struct ftrace_ops *next;
|
||||
struct ftrace_ops __rcu *next;
|
||||
unsigned long flags;
|
||||
void *private;
|
||||
ftrace_func_t saved_func;
|
||||
|
@@ -128,6 +128,7 @@ struct inet6_skb_parm {
|
||||
#define IP6SKB_FRAGMENTED 16
|
||||
#define IP6SKB_HOPBYHOP 32
|
||||
#define IP6SKB_L3SLAVE 64
|
||||
#define IP6SKB_JUMBOGRAM 128
|
||||
};
|
||||
|
||||
#if defined(CONFIG_NET_L3_MASTER_DEV)
|
||||
@@ -152,6 +153,11 @@ static inline int inet6_iif(const struct sk_buff *skb)
|
||||
return l3_slave ? skb->skb_iif : IP6CB(skb)->iif;
|
||||
}
|
||||
|
||||
static inline bool inet6_is_jumbogram(const struct sk_buff *skb)
|
||||
{
|
||||
return !!(IP6CB(skb)->flags & IP6SKB_JUMBOGRAM);
|
||||
}
|
||||
|
||||
/* can not be used in TCP layer after tcp_v6_fill_cb */
|
||||
static inline bool inet6_exact_dif_match(struct net *net, struct sk_buff *skb)
|
||||
{
|
||||
|
@@ -388,7 +388,12 @@ static inline irq_hw_number_t irqd_to_hwirq(struct irq_data *d)
|
||||
* @irq_mask_ack: ack and mask an interrupt source
|
||||
* @irq_unmask: unmask an interrupt source
|
||||
* @irq_eoi: end of interrupt
|
||||
* @irq_set_affinity: set the CPU affinity on SMP machines
|
||||
* @irq_set_affinity: Set the CPU affinity on SMP machines. If the force
|
||||
* argument is true, it tells the driver to
|
||||
* unconditionally apply the affinity setting. Sanity
|
||||
* checks against the supplied affinity mask are not
|
||||
* required. This is used for CPU hotplug where the
|
||||
* target CPU is not yet set in the cpu_online_mask.
|
||||
* @irq_retrigger: resend an IRQ to the CPU
|
||||
* @irq_set_type: set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ
|
||||
* @irq_set_wake: enable/disable power-management wake-on of an IRQ
|
||||
|
@@ -445,6 +445,7 @@ struct kvm {
|
||||
struct kvm_stat_data **debugfs_stat_data;
|
||||
struct srcu_struct srcu;
|
||||
struct srcu_struct irq_srcu;
|
||||
pid_t userspace_pid;
|
||||
};
|
||||
|
||||
#define kvm_err(fmt, ...) \
|
||||
|
@@ -435,7 +435,7 @@ enum {
|
||||
ATA_HORKAGE_NOLPM = (1 << 20), /* don't use LPM */
|
||||
ATA_HORKAGE_WD_BROKEN_LPM = (1 << 21), /* some WDs have broken LPM */
|
||||
ATA_HORKAGE_ZERO_AFTER_TRIM = (1 << 22),/* guarantees zero after trim */
|
||||
ATA_HORKAGE_NO_NCQ_LOG = (1 << 23), /* don't use NCQ for log read */
|
||||
ATA_HORKAGE_NO_DMA_LOG = (1 << 23), /* don't use DMA for log read */
|
||||
ATA_HORKAGE_NOTRIM = (1 << 24), /* don't use TRIM */
|
||||
ATA_HORKAGE_MAX_SEC_1024 = (1 << 25), /* Limit max sects to 1024 */
|
||||
|
||||
|
@@ -7749,8 +7749,10 @@ struct mlx5_ifc_pcam_reg_bits {
|
||||
};
|
||||
|
||||
struct mlx5_ifc_mcam_enhanced_features_bits {
|
||||
u8 reserved_at_0[0x7f];
|
||||
u8 reserved_at_0[0x7d];
|
||||
|
||||
u8 mtpps_enh_out_per_adj[0x1];
|
||||
u8 mtpps_fs[0x1];
|
||||
u8 pcie_performance_group[0x1];
|
||||
};
|
||||
|
||||
@@ -8159,7 +8161,8 @@ struct mlx5_ifc_mtpps_reg_bits {
|
||||
u8 reserved_at_78[0x4];
|
||||
u8 cap_pin_4_mode[0x4];
|
||||
|
||||
u8 reserved_at_80[0x80];
|
||||
u8 field_select[0x20];
|
||||
u8 reserved_at_a0[0x60];
|
||||
|
||||
u8 enable[0x1];
|
||||
u8 reserved_at_101[0xb];
|
||||
@@ -8174,8 +8177,9 @@ struct mlx5_ifc_mtpps_reg_bits {
|
||||
|
||||
u8 out_pulse_duration[0x10];
|
||||
u8 out_periodic_adjustment[0x10];
|
||||
u8 enhanced_out_periodic_adjustment[0x20];
|
||||
|
||||
u8 reserved_at_1a0[0x60];
|
||||
u8 reserved_at_1c0[0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_mtppse_reg_bits {
|
||||
|
@@ -51,7 +51,7 @@ struct nfs_access_entry {
|
||||
struct list_head lru;
|
||||
unsigned long jiffies;
|
||||
struct rpc_cred * cred;
|
||||
int mask;
|
||||
__u32 mask;
|
||||
struct rcu_head rcu_head;
|
||||
};
|
||||
|
||||
|
@@ -334,5 +334,24 @@ struct fcnvme_ls_disconnect_acc {
|
||||
#define NVME_FC_LS_TIMEOUT_SEC 2 /* 2 seconds */
|
||||
#define NVME_FC_TGTOP_TIMEOUT_SEC 2 /* 2 seconds */
|
||||
|
||||
/*
|
||||
* TRADDR string must be of form "nn-<16hexdigits>:pn-<16hexdigits>"
|
||||
* the string is allowed to be specified with or without a "0x" prefix
|
||||
* infront of the <16hexdigits>. Without is considered the "min" string
|
||||
* and with is considered the "max" string. The hexdigits may be upper
|
||||
* or lower case.
|
||||
*/
|
||||
#define NVME_FC_TRADDR_NNLEN 3 /* "?n-" */
|
||||
#define NVME_FC_TRADDR_OXNNLEN 5 /* "?n-0x" */
|
||||
#define NVME_FC_TRADDR_HEXNAMELEN 16
|
||||
#define NVME_FC_TRADDR_MINLENGTH \
|
||||
(2 * (NVME_FC_TRADDR_NNLEN + NVME_FC_TRADDR_HEXNAMELEN) + 1)
|
||||
#define NVME_FC_TRADDR_MAXLENGTH \
|
||||
(2 * (NVME_FC_TRADDR_OXNNLEN + NVME_FC_TRADDR_HEXNAMELEN) + 1)
|
||||
#define NVME_FC_TRADDR_MIN_PN_OFFSET \
|
||||
(NVME_FC_TRADDR_NNLEN + NVME_FC_TRADDR_HEXNAMELEN + 1)
|
||||
#define NVME_FC_TRADDR_MAX_PN_OFFSET \
|
||||
(NVME_FC_TRADDR_OXNNLEN + NVME_FC_TRADDR_HEXNAMELEN + 1)
|
||||
|
||||
|
||||
#endif /* _NVME_FC_H */
|
||||
|
@@ -963,14 +963,14 @@ struct nvme_dbbuf {
|
||||
};
|
||||
|
||||
struct streams_directive_params {
|
||||
__u16 msl;
|
||||
__u16 nssa;
|
||||
__u16 nsso;
|
||||
__le16 msl;
|
||||
__le16 nssa;
|
||||
__le16 nsso;
|
||||
__u8 rsvd[10];
|
||||
__u32 sws;
|
||||
__u16 sgs;
|
||||
__u16 nsa;
|
||||
__u16 nso;
|
||||
__le32 sws;
|
||||
__le16 sgs;
|
||||
__le16 nsa;
|
||||
__le16 nso;
|
||||
__u8 rsvd2[6];
|
||||
};
|
||||
|
||||
@@ -1006,7 +1006,7 @@ static inline bool nvme_is_write(struct nvme_command *cmd)
|
||||
* Why can't we simply have a Fabrics In and Fabrics out command?
|
||||
*/
|
||||
if (unlikely(cmd->common.opcode == nvme_fabrics_command))
|
||||
return cmd->fabrics.opcode & 1;
|
||||
return cmd->fabrics.fctype & 1;
|
||||
return cmd->common.opcode & 1;
|
||||
}
|
||||
|
||||
|
@@ -24,10 +24,14 @@
|
||||
* interrupt and passed the address of the low level handler,
|
||||
* and can be used to implement any platform specific handling
|
||||
* before or after calling it.
|
||||
*
|
||||
* @irq_flags: if non-zero, these flags will be passed to request_irq
|
||||
* when requesting interrupts for this PMU device.
|
||||
*/
|
||||
struct arm_pmu_platdata {
|
||||
irqreturn_t (*handle_irq)(int irq, void *dev,
|
||||
irq_handler_t pmu_handler);
|
||||
unsigned long irq_flags;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_ARM_PMU
|
||||
|
@@ -830,7 +830,7 @@ static inline int phy_read_status(struct phy_device *phydev)
|
||||
dev_err(&_phydev->mdio.dev, format, ##args)
|
||||
|
||||
#define phydev_dbg(_phydev, format, args...) \
|
||||
dev_dbg(&_phydev->mdio.dev, format, ##args);
|
||||
dev_dbg(&_phydev->mdio.dev, format, ##args)
|
||||
|
||||
static inline const char *phydev_name(const struct phy_device *phydev)
|
||||
{
|
||||
|
@@ -55,9 +55,6 @@ struct omap_hsmmc_platform_data {
|
||||
u32 caps; /* Used for the MMC driver on 2430 and later */
|
||||
u32 pm_caps; /* PM capabilities of the mmc */
|
||||
|
||||
/* use the internal clock */
|
||||
unsigned internal_clock:1;
|
||||
|
||||
/* nonremovable e.g. eMMC */
|
||||
unsigned nonremovable:1;
|
||||
|
||||
@@ -73,13 +70,6 @@ struct omap_hsmmc_platform_data {
|
||||
int gpio_cd; /* gpio (card detect) */
|
||||
int gpio_cod; /* gpio (cover detect) */
|
||||
int gpio_wp; /* gpio (write protect) */
|
||||
|
||||
int (*set_power)(struct device *dev, int power_on, int vdd);
|
||||
void (*remux)(struct device *dev, int power_on);
|
||||
/* Call back before enabling / disabling regulators */
|
||||
void (*before_set_reg)(struct device *dev, int power_on, int vdd);
|
||||
/* Call back after enabling / disabling regulators */
|
||||
void (*after_set_reg)(struct device *dev, int power_on, int vdd);
|
||||
/* if we have special card, init it using this callback */
|
||||
void (*init_card)(struct mmc_card *card);
|
||||
|
||||
|
@@ -338,7 +338,7 @@ enum {
|
||||
struct trace_event_file {
|
||||
struct list_head list;
|
||||
struct trace_event_call *event_call;
|
||||
struct event_filter *filter;
|
||||
struct event_filter __rcu *filter;
|
||||
struct dentry *dir;
|
||||
struct trace_array *tr;
|
||||
struct trace_subsystem_dir *system;
|
||||
|
@@ -115,13 +115,13 @@ struct uac2_input_terminal_descriptor {
|
||||
__u8 bDescriptorType;
|
||||
__u8 bDescriptorSubtype;
|
||||
__u8 bTerminalID;
|
||||
__u16 wTerminalType;
|
||||
__le16 wTerminalType;
|
||||
__u8 bAssocTerminal;
|
||||
__u8 bCSourceID;
|
||||
__u8 bNrChannels;
|
||||
__u32 bmChannelConfig;
|
||||
__le32 bmChannelConfig;
|
||||
__u8 iChannelNames;
|
||||
__u16 bmControls;
|
||||
__le16 bmControls;
|
||||
__u8 iTerminal;
|
||||
} __attribute__((packed));
|
||||
|
||||
@@ -132,11 +132,11 @@ struct uac2_output_terminal_descriptor {
|
||||
__u8 bDescriptorType;
|
||||
__u8 bDescriptorSubtype;
|
||||
__u8 bTerminalID;
|
||||
__u16 wTerminalType;
|
||||
__le16 wTerminalType;
|
||||
__u8 bAssocTerminal;
|
||||
__u8 bSourceID;
|
||||
__u8 bCSourceID;
|
||||
__u16 bmControls;
|
||||
__le16 bmControls;
|
||||
__u8 iTerminal;
|
||||
} __attribute__((packed));
|
||||
|
||||
@@ -164,9 +164,9 @@ struct uac2_as_header_descriptor {
|
||||
__u8 bTerminalLink;
|
||||
__u8 bmControls;
|
||||
__u8 bFormatType;
|
||||
__u32 bmFormats;
|
||||
__le32 bmFormats;
|
||||
__u8 bNrChannels;
|
||||
__u32 bmChannelConfig;
|
||||
__le32 bmChannelConfig;
|
||||
__u8 iChannelNames;
|
||||
} __attribute__((packed));
|
||||
|
||||
|
@@ -84,26 +84,12 @@ int guid_parse(const char *uuid, guid_t *u);
|
||||
int uuid_parse(const char *uuid, uuid_t *u);
|
||||
|
||||
/* backwards compatibility, don't use in new code */
|
||||
typedef uuid_t uuid_be;
|
||||
#define UUID_BE(a, _b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
|
||||
UUID_INIT(a, _b, c, d0, d1, d2, d3, d4, d5, d6, d7)
|
||||
#define NULL_UUID_BE \
|
||||
UUID_BE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00)
|
||||
|
||||
#define uuid_le_gen(u) guid_gen(u)
|
||||
#define uuid_be_gen(u) uuid_gen(u)
|
||||
#define uuid_le_to_bin(guid, u) guid_parse(guid, u)
|
||||
#define uuid_be_to_bin(uuid, u) uuid_parse(uuid, u)
|
||||
|
||||
static inline int uuid_le_cmp(const guid_t u1, const guid_t u2)
|
||||
{
|
||||
return memcmp(&u1, &u2, sizeof(guid_t));
|
||||
}
|
||||
|
||||
static inline int uuid_be_cmp(const uuid_t u1, const uuid_t u2)
|
||||
{
|
||||
return memcmp(&u1, &u2, sizeof(uuid_t));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -529,13 +529,13 @@ do { \
|
||||
|
||||
/**
|
||||
* wait_event_interruptible_hrtimeout - sleep until a condition gets true or a timeout elapses
|
||||
* @wq_head: the waitqueue to wait on
|
||||
* @wq: the waitqueue to wait on
|
||||
* @condition: a C expression for the event to wait for
|
||||
* @timeout: timeout, as a ktime_t
|
||||
*
|
||||
* The process is put to sleep (TASK_INTERRUPTIBLE) until the
|
||||
* @condition evaluates to true or a signal is received.
|
||||
* The @condition is checked each time the waitqueue @wq_head is woken up.
|
||||
* The @condition is checked each time the waitqueue @wq is woken up.
|
||||
*
|
||||
* wake_up() has to be called after changing any variable that could
|
||||
* change the result of the wait condition.
|
||||
@@ -735,12 +735,12 @@ extern int do_wait_intr_irq(wait_queue_head_t *, wait_queue_entry_t *);
|
||||
|
||||
/**
|
||||
* wait_event_killable - sleep until a condition gets true
|
||||
* @wq: the waitqueue to wait on
|
||||
* @wq_head: the waitqueue to wait on
|
||||
* @condition: a C expression for the event to wait for
|
||||
*
|
||||
* The process is put to sleep (TASK_KILLABLE) until the
|
||||
* @condition evaluates to true or a signal is received.
|
||||
* The @condition is checked each time the waitqueue @wq is woken up.
|
||||
* The @condition is checked each time the waitqueue @wq_head is woken up.
|
||||
*
|
||||
* wake_up() has to be called after changing any variable that could
|
||||
* change the result of the wait condition.
|
||||
|
@@ -323,6 +323,7 @@ enum {
|
||||
|
||||
__WQ_DRAINING = 1 << 16, /* internal: workqueue is draining */
|
||||
__WQ_ORDERED = 1 << 17, /* internal: workqueue is ordered */
|
||||
__WQ_ORDERED_EXPLICIT = 1 << 18, /* internal: alloc_ordered_workqueue() */
|
||||
__WQ_LEGACY = 1 << 18, /* internal: create*_workqueue() */
|
||||
|
||||
WQ_MAX_ACTIVE = 512, /* I like 512, better ideas? */
|
||||
@@ -422,7 +423,8 @@ __alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active,
|
||||
* Pointer to the allocated workqueue on success, %NULL on failure.
|
||||
*/
|
||||
#define alloc_ordered_workqueue(fmt, flags, args...) \
|
||||
alloc_workqueue(fmt, WQ_UNBOUND | __WQ_ORDERED | (flags), 1, ##args)
|
||||
alloc_workqueue(fmt, WQ_UNBOUND | __WQ_ORDERED | \
|
||||
__WQ_ORDERED_EXPLICIT | (flags), 1, ##args)
|
||||
|
||||
#define create_workqueue(name) \
|
||||
alloc_workqueue("%s", __WQ_LEGACY | WQ_MEM_RECLAIM, 1, (name))
|
||||
|
Reference in New Issue
Block a user