mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 21:54:34 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Merge 'net' bug fixes into 'net-next' as we have patches that will build on top of them. This merge commit includes a change from Emil Goode (emilgoode@gmail.com) that fixes a warning that would have been introduced by this merge. Specifically it fixes the pingv6_ops method ipv6_chk_addr() to add a "const" to the "struct net_device *dev" argument and likewise update the dummy_ipv6_chk_addr() declaration. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
6bc19fb82d
499 changed files with 7631 additions and 3678 deletions
|
|
@ -37,6 +37,8 @@ struct acpi_dma_spec {
|
|||
* @dev: struct device of this controller
|
||||
* @acpi_dma_xlate: callback function to find a suitable channel
|
||||
* @data: private data used by a callback function
|
||||
* @base_request_line: first supported request line (CSRT)
|
||||
* @end_request_line: last supported request line (CSRT)
|
||||
*/
|
||||
struct acpi_dma {
|
||||
struct list_head dma_controllers;
|
||||
|
|
@ -44,6 +46,8 @@ struct acpi_dma {
|
|||
struct dma_chan *(*acpi_dma_xlate)
|
||||
(struct acpi_dma_spec *, struct acpi_dma *);
|
||||
void *data;
|
||||
unsigned short base_request_line;
|
||||
unsigned short end_request_line;
|
||||
};
|
||||
|
||||
/* Used with acpi_dma_simple_xlate() */
|
||||
|
|
|
|||
|
|
@ -49,10 +49,11 @@ static inline int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev)
|
|||
}
|
||||
#endif
|
||||
|
||||
extern void cper_print_aer(const char *prefix, struct pci_dev *dev,
|
||||
extern void cper_print_aer(struct pci_dev *dev,
|
||||
int cper_severity, struct aer_capability_regs *aer);
|
||||
extern int cper_severity_to_aer(int cper_severity);
|
||||
extern void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn,
|
||||
int severity);
|
||||
int severity,
|
||||
struct aer_capability_regs *aer_regs);
|
||||
#endif //_AER_H_
|
||||
|
||||
|
|
|
|||
|
|
@ -707,7 +707,7 @@ struct cgroup *cgroup_rightmost_descendant(struct cgroup *pos);
|
|||
*
|
||||
* If a subsystem synchronizes against the parent in its ->css_online() and
|
||||
* before starting iterating, and synchronizes against @pos on each
|
||||
* iteration, any descendant cgroup which finished ->css_offline() is
|
||||
* iteration, any descendant cgroup which finished ->css_online() is
|
||||
* guaranteed to be visible in the future iterations.
|
||||
*
|
||||
* In other words, the following guarantees that a descendant can't escape
|
||||
|
|
|
|||
|
|
@ -562,6 +562,9 @@ int __trace_bprintk(unsigned long ip, const char *fmt, ...);
|
|||
extern __printf(2, 3)
|
||||
int __trace_printk(unsigned long ip, const char *fmt, ...);
|
||||
|
||||
extern int __trace_bputs(unsigned long ip, const char *str);
|
||||
extern int __trace_puts(unsigned long ip, const char *str, int size);
|
||||
|
||||
/**
|
||||
* trace_puts - write a string into the ftrace buffer
|
||||
* @str: the string to record
|
||||
|
|
@ -587,8 +590,6 @@ int __trace_printk(unsigned long ip, const char *fmt, ...);
|
|||
* (1 when __trace_bputs is used, strlen(str) when __trace_puts is used)
|
||||
*/
|
||||
|
||||
extern int __trace_bputs(unsigned long ip, const char *str);
|
||||
extern int __trace_puts(unsigned long ip, const char *str, int size);
|
||||
#define trace_puts(str) ({ \
|
||||
static const char *trace_printk_fmt \
|
||||
__attribute__((section("__trace_printk_fmt"))) = \
|
||||
|
|
|
|||
|
|
@ -361,6 +361,17 @@ static inline void list_splice_tail_init(struct list_head *list,
|
|||
#define list_first_entry(ptr, type, member) \
|
||||
list_entry((ptr)->next, type, member)
|
||||
|
||||
/**
|
||||
* list_first_entry_or_null - get the first element from a list
|
||||
* @ptr: the list head to take the element from.
|
||||
* @type: the type of the struct this is embedded in.
|
||||
* @member: the name of the list_struct within the struct.
|
||||
*
|
||||
* Note that if the list is empty, it returns NULL.
|
||||
*/
|
||||
#define list_first_entry_or_null(ptr, type, member) \
|
||||
(!list_empty(ptr) ? list_first_entry(ptr, type, member) : NULL)
|
||||
|
||||
/**
|
||||
* list_for_each - iterate over a list
|
||||
* @pos: the &struct list_head to use as a loop cursor.
|
||||
|
|
|
|||
|
|
@ -17,6 +17,22 @@ extern __sum16 nf_ip6_checksum(struct sk_buff *skb, unsigned int hook,
|
|||
|
||||
extern int ipv6_netfilter_init(void);
|
||||
extern void ipv6_netfilter_fini(void);
|
||||
|
||||
/*
|
||||
* Hook functions for ipv6 to allow xt_* modules to be built-in even
|
||||
* if IPv6 is a module.
|
||||
*/
|
||||
struct nf_ipv6_ops {
|
||||
int (*chk_addr)(struct net *net, const struct in6_addr *addr,
|
||||
const struct net_device *dev, int strict);
|
||||
};
|
||||
|
||||
extern const struct nf_ipv6_ops __rcu *nf_ipv6_ops;
|
||||
static inline const struct nf_ipv6_ops *nf_get_ipv6_ops(void)
|
||||
{
|
||||
return rcu_dereference(nf_ipv6_ops);
|
||||
}
|
||||
|
||||
#else /* CONFIG_NETFILTER */
|
||||
static inline int ipv6_netfilter_init(void) { return 0; }
|
||||
static inline void ipv6_netfilter_fini(void) { return; }
|
||||
|
|
|
|||
|
|
@ -13,6 +13,11 @@
|
|||
#ifndef __CLK_LPSS_H
|
||||
#define __CLK_LPSS_H
|
||||
|
||||
struct lpss_clk_data {
|
||||
const char *name;
|
||||
struct clk *clk;
|
||||
};
|
||||
|
||||
extern int lpt_clk_init(void);
|
||||
|
||||
#endif /* __CLK_LPSS_H */
|
||||
|
|
|
|||
|
|
@ -43,8 +43,6 @@ struct omap_uart_port_info {
|
|||
int DTR_present;
|
||||
|
||||
int (*get_context_loss_count)(struct device *);
|
||||
void (*set_forceidle)(struct device *);
|
||||
void (*set_noidle)(struct device *);
|
||||
void (*enable_wakeup)(struct device *, bool);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -105,9 +105,14 @@ static inline void hlist_nulls_add_head_rcu(struct hlist_nulls_node *n,
|
|||
* @head: the head for your list.
|
||||
* @member: the name of the hlist_nulls_node within the struct.
|
||||
*
|
||||
* The barrier() is needed to make sure compiler doesn't cache first element [1],
|
||||
* as this loop can be restarted [2]
|
||||
* [1] Documentation/atomic_ops.txt around line 114
|
||||
* [2] Documentation/RCU/rculist_nulls.txt around line 146
|
||||
*/
|
||||
#define hlist_nulls_for_each_entry_rcu(tpos, pos, head, member) \
|
||||
for (pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \
|
||||
for (({barrier();}), \
|
||||
pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \
|
||||
(!is_a_nulls(pos)) && \
|
||||
({ tpos = hlist_nulls_entry(pos, typeof(*tpos), member); 1; }); \
|
||||
pos = rcu_dereference_raw(hlist_nulls_next_rcu(pos)))
|
||||
|
|
|
|||
|
|
@ -83,7 +83,6 @@
|
|||
|
||||
extern struct bus_type rio_bus_type;
|
||||
extern struct device rio_bus;
|
||||
extern struct list_head rio_devices; /* list of all devices */
|
||||
|
||||
struct rio_mport;
|
||||
struct rio_dev;
|
||||
|
|
@ -237,6 +236,7 @@ enum rio_phy_type {
|
|||
* @name: Port name string
|
||||
* @priv: Master port private data
|
||||
* @dma: DMA device associated with mport
|
||||
* @nscan: RapidIO network enumeration/discovery operations
|
||||
*/
|
||||
struct rio_mport {
|
||||
struct list_head dbells; /* list of doorbell events */
|
||||
|
|
@ -262,8 +262,14 @@ struct rio_mport {
|
|||
#ifdef CONFIG_RAPIDIO_DMA_ENGINE
|
||||
struct dma_device dma;
|
||||
#endif
|
||||
struct rio_scan *nscan;
|
||||
};
|
||||
|
||||
/*
|
||||
* Enumeration/discovery control flags
|
||||
*/
|
||||
#define RIO_SCAN_ENUM_NO_WAIT 0x00000001 /* Do not wait for enum completed */
|
||||
|
||||
struct rio_id_table {
|
||||
u16 start; /* logical minimal id */
|
||||
u32 max; /* max number of IDs in table */
|
||||
|
|
@ -460,6 +466,16 @@ static inline struct rio_mport *dma_to_mport(struct dma_device *ddev)
|
|||
}
|
||||
#endif /* CONFIG_RAPIDIO_DMA_ENGINE */
|
||||
|
||||
/**
|
||||
* struct rio_scan - RIO enumeration and discovery operations
|
||||
* @enumerate: Callback to perform RapidIO fabric enumeration.
|
||||
* @discover: Callback to perform RapidIO fabric discovery.
|
||||
*/
|
||||
struct rio_scan {
|
||||
int (*enumerate)(struct rio_mport *mport, u32 flags);
|
||||
int (*discover)(struct rio_mport *mport, u32 flags);
|
||||
};
|
||||
|
||||
/* Architecture and hardware-specific functions */
|
||||
extern int rio_register_mport(struct rio_mport *);
|
||||
extern int rio_open_inb_mbox(struct rio_mport *, void *, int, int);
|
||||
|
|
|
|||
|
|
@ -433,5 +433,6 @@ extern u16 rio_local_get_device_id(struct rio_mport *port);
|
|||
extern struct rio_dev *rio_get_device(u16 vid, u16 did, struct rio_dev *from);
|
||||
extern struct rio_dev *rio_get_asm(u16 vid, u16 did, u16 asm_vid, u16 asm_did,
|
||||
struct rio_dev *from);
|
||||
extern int rio_init_mports(void);
|
||||
|
||||
#endif /* LINUX_RIO_DRV_H */
|
||||
|
|
|
|||
|
|
@ -2758,6 +2758,21 @@ static inline int skb_tnl_header_len(const struct sk_buff *inner_skb)
|
|||
SKB_GSO_CB(inner_skb)->mac_offset;
|
||||
}
|
||||
|
||||
static inline int gso_pskb_expand_head(struct sk_buff *skb, int extra)
|
||||
{
|
||||
int new_headroom, headroom;
|
||||
int ret;
|
||||
|
||||
headroom = skb_headroom(skb);
|
||||
ret = pskb_expand_head(skb, extra, 0, GFP_ATOMIC);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
new_headroom = skb_headroom(skb);
|
||||
SKB_GSO_CB(skb)->mac_offset += (new_headroom - headroom);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline bool skb_is_gso(const struct sk_buff *skb)
|
||||
{
|
||||
return skb_shinfo(skb)->gso_size;
|
||||
|
|
|
|||
|
|
@ -217,6 +217,8 @@ do { \
|
|||
if (!ret) \
|
||||
break; \
|
||||
} \
|
||||
if (!ret && (condition)) \
|
||||
ret = 1; \
|
||||
finish_wait(&wq, &__wait); \
|
||||
} while (0)
|
||||
|
||||
|
|
@ -233,8 +235,9 @@ do { \
|
|||
* wake_up() has to be called after changing any variable that could
|
||||
* change the result of the wait condition.
|
||||
*
|
||||
* The function returns 0 if the @timeout elapsed, and the remaining
|
||||
* jiffies if the condition evaluated to true before the timeout elapsed.
|
||||
* The function returns 0 if the @timeout elapsed, or the remaining
|
||||
* jiffies (at least 1) if the @condition evaluated to %true before
|
||||
* the @timeout elapsed.
|
||||
*/
|
||||
#define wait_event_timeout(wq, condition, timeout) \
|
||||
({ \
|
||||
|
|
@ -302,6 +305,8 @@ do { \
|
|||
ret = -ERESTARTSYS; \
|
||||
break; \
|
||||
} \
|
||||
if (!ret && (condition)) \
|
||||
ret = 1; \
|
||||
finish_wait(&wq, &__wait); \
|
||||
} while (0)
|
||||
|
||||
|
|
@ -318,9 +323,10 @@ do { \
|
|||
* wake_up() has to be called after changing any variable that could
|
||||
* change the result of the wait condition.
|
||||
*
|
||||
* The function returns 0 if the @timeout elapsed, -ERESTARTSYS if it
|
||||
* was interrupted by a signal, and the remaining jiffies otherwise
|
||||
* if the condition evaluated to true before the timeout elapsed.
|
||||
* Returns:
|
||||
* 0 if the @timeout elapsed, -%ERESTARTSYS if it was interrupted by
|
||||
* a signal, or the remaining jiffies (at least 1) if the @condition
|
||||
* evaluated to %true before the @timeout elapsed.
|
||||
*/
|
||||
#define wait_event_interruptible_timeout(wq, condition, timeout) \
|
||||
({ \
|
||||
|
|
|
|||
Loading…
Reference in a new issue