diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/drm/drmP.h | 4 | ||||
| -rw-r--r-- | include/drm/drm_gem.h | 7 | ||||
| -rw-r--r-- | include/dt-bindings/thermal/thermal.h | 2 | ||||
| -rw-r--r-- | include/linux/audit.h | 4 | ||||
| -rw-r--r-- | include/linux/cpu_cooling.h | 6 | ||||
| -rw-r--r-- | include/linux/cpuidle.h | 3 | ||||
| -rw-r--r-- | include/linux/mfd/stmpe.h | 22 | ||||
| -rw-r--r-- | include/linux/netdevice.h | 20 | ||||
| -rw-r--r-- | include/linux/netlink.h | 4 | ||||
| -rw-r--r-- | include/linux/pagemap.h | 13 | ||||
| -rw-r--r-- | include/linux/pm_domain.h | 8 | ||||
| -rw-r--r-- | include/linux/thermal.h | 2 | ||||
| -rw-r--r-- | include/net/genetlink.h | 9 | ||||
| -rw-r--r-- | include/net/neighbour.h | 1 | ||||
| -rw-r--r-- | include/net/vxlan.h | 28 | ||||
| -rw-r--r-- | include/sound/pcm.h | 10 | ||||
| -rw-r--r-- | include/uapi/linux/in6.h | 3 | ||||
| -rw-r--r-- | include/uapi/linux/libc-compat.h | 3 | ||||
| -rw-r--r-- | include/uapi/linux/virtio_ring.h | 7 | 
19 files changed, 90 insertions, 66 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 8ba35c622e22..e1b2e8b98af7 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -901,11 +901,15 @@ extern int drm_vblank_init(struct drm_device *dev, int num_crtcs);  extern int drm_wait_vblank(struct drm_device *dev, void *data,  			   struct drm_file *filp);  extern u32 drm_vblank_count(struct drm_device *dev, int crtc); +extern u32 drm_crtc_vblank_count(struct drm_crtc *crtc);  extern u32 drm_vblank_count_and_time(struct drm_device *dev, int crtc,  				     struct timeval *vblanktime);  extern void drm_send_vblank_event(struct drm_device *dev, int crtc,  				     struct drm_pending_vblank_event *e); +extern void drm_crtc_send_vblank_event(struct drm_crtc *crtc, +				       struct drm_pending_vblank_event *e);  extern bool drm_handle_vblank(struct drm_device *dev, int crtc); +extern bool drm_crtc_handle_vblank(struct drm_crtc *crtc);  extern int drm_vblank_get(struct drm_device *dev, int crtc);  extern void drm_vblank_put(struct drm_device *dev, int crtc);  extern int drm_crtc_vblank_get(struct drm_crtc *crtc); diff --git a/include/drm/drm_gem.h b/include/drm/drm_gem.h index 780511a459c0..1e6ae1458f7a 100644 --- a/include/drm/drm_gem.h +++ b/include/drm/drm_gem.h @@ -119,13 +119,6 @@ struct drm_gem_object {  	 * simply leave it as NULL.  	 */  	struct dma_buf_attachment *import_attach; - -	/** -	 * dumb - created as dumb buffer -	 * Whether the gem object was created using the dumb buffer interface -	 * as such it may not be used for GPU rendering. -	 */ -	bool dumb;  };  void drm_gem_object_release(struct drm_gem_object *obj); diff --git a/include/dt-bindings/thermal/thermal.h b/include/dt-bindings/thermal/thermal.h index 59822a995858..b5e6b0069ac7 100644 --- a/include/dt-bindings/thermal/thermal.h +++ b/include/dt-bindings/thermal/thermal.h @@ -11,7 +11,7 @@  #define _DT_BINDINGS_THERMAL_THERMAL_H  /* On cooling devices upper and lower limits */ -#define THERMAL_NO_LIMIT		(-1UL) +#define THERMAL_NO_LIMIT		(~0)  #endif diff --git a/include/linux/audit.h b/include/linux/audit.h index 0c04917c2f12..af84234e1f6e 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h @@ -47,6 +47,7 @@ struct sk_buff;  struct audit_krule {  	int			vers_ops; +	u32			pflags;  	u32			flags;  	u32			listnr;  	u32			action; @@ -64,6 +65,9 @@ struct audit_krule {  	u64			prio;  }; +/* Flag to indicate legacy AUDIT_LOGINUID unset usage */ +#define AUDIT_LOGINUID_LEGACY		0x1 +  struct audit_field {  	u32				type;  	union { diff --git a/include/linux/cpu_cooling.h b/include/linux/cpu_cooling.h index c303d383def1..bd955270d5aa 100644 --- a/include/linux/cpu_cooling.h +++ b/include/linux/cpu_cooling.h @@ -50,7 +50,7 @@ static inline struct thermal_cooling_device *  of_cpufreq_cooling_register(struct device_node *np,  			    const struct cpumask *clip_cpus)  { -	return NULL; +	return ERR_PTR(-ENOSYS);  }  #endif @@ -65,13 +65,13 @@ unsigned long cpufreq_cooling_get_level(unsigned int cpu, unsigned int freq);  static inline struct thermal_cooling_device *  cpufreq_cooling_register(const struct cpumask *clip_cpus)  { -	return NULL; +	return ERR_PTR(-ENOSYS);  }  static inline struct thermal_cooling_device *  of_cpufreq_cooling_register(struct device_node *np,  			    const struct cpumask *clip_cpus)  { -	return NULL; +	return ERR_PTR(-ENOSYS);  }  static inline  void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev) diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index a07e087f54b2..ab70f3bc44ad 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h @@ -53,7 +53,6 @@ struct cpuidle_state {  };  /* Idle State Flags */ -#define CPUIDLE_FLAG_TIME_INVALID	(0x01) /* is residency time measurable? */  #define CPUIDLE_FLAG_COUPLED	(0x02) /* state applies to multiple cpus */  #define CPUIDLE_FLAG_TIMER_STOP (0x04)  /* timer is stopped on this state */ @@ -89,8 +88,6 @@ DECLARE_PER_CPU(struct cpuidle_device, cpuidle_dev);  /**   * cpuidle_get_last_residency - retrieves the last state's residency time   * @dev: the target CPU - * - * NOTE: this value is invalid if CPUIDLE_FLAG_TIME_INVALID is set   */  static inline int cpuidle_get_last_residency(struct cpuidle_device *dev)  { diff --git a/include/linux/mfd/stmpe.h b/include/linux/mfd/stmpe.h index 575a86c7fcbd..f742b6717d52 100644 --- a/include/linux/mfd/stmpe.h +++ b/include/linux/mfd/stmpe.h @@ -50,6 +50,8 @@ enum {  	STMPE_IDX_GPEDR_MSB,  	STMPE_IDX_GPRER_LSB,  	STMPE_IDX_GPFER_LSB, +	STMPE_IDX_GPPUR_LSB, +	STMPE_IDX_GPPDR_LSB,  	STMPE_IDX_GPAFR_U_MSB,  	STMPE_IDX_IEGPIOR_LSB,  	STMPE_IDX_ISGPIOR_LSB, @@ -113,24 +115,6 @@ extern int stmpe_set_altfunc(struct stmpe *stmpe, u32 pins,  extern int stmpe_enable(struct stmpe *stmpe, unsigned int blocks);  extern int stmpe_disable(struct stmpe *stmpe, unsigned int blocks); -struct matrix_keymap_data; - -/** - * struct stmpe_keypad_platform_data - STMPE keypad platform data - * @keymap_data: key map table and size - * @debounce_ms: debounce interval, in ms.  Maximum is - *		 %STMPE_KEYPAD_MAX_DEBOUNCE. - * @scan_count: number of key scanning cycles to confirm key data. - *		Maximum is %STMPE_KEYPAD_MAX_SCAN_COUNT. - * @no_autorepeat: disable key autorepeat - */ -struct stmpe_keypad_platform_data { -	const struct matrix_keymap_data *keymap_data; -	unsigned int debounce_ms; -	unsigned int scan_count; -	bool no_autorepeat; -}; -  #define STMPE_GPIO_NOREQ_811_TOUCH	(0xf0)  /** @@ -199,7 +183,6 @@ struct stmpe_ts_platform_data {   * @irq_gpio: gpio number over which irq will be requested (significant only if   *	      irq_over_gpio is true)   * @gpio: GPIO-specific platform data - * @keypad: keypad-specific platform data   * @ts: touchscreen-specific platform data   */  struct stmpe_platform_data { @@ -212,7 +195,6 @@ struct stmpe_platform_data {  	int autosleep_timeout;  	struct stmpe_gpio_platform_data *gpio; -	struct stmpe_keypad_platform_data *keypad;  	struct stmpe_ts_platform_data *ts;  }; diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index c31f74d76ebd..679e6e90aa4c 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -1012,12 +1012,15 @@ typedef u16 (*select_queue_fallback_t)(struct net_device *dev,   *	Callback to use for xmit over the accelerated station. This   *	is used in place of ndo_start_xmit on accelerated net   *	devices. - * bool	(*ndo_gso_check) (struct sk_buff *skb, - *			  struct net_device *dev); + * netdev_features_t (*ndo_features_check) (struct sk_buff *skb, + *					    struct net_device *dev + *					    netdev_features_t features);   *	Called by core transmit path to determine if device is capable of - *	performing GSO on a packet. The device returns true if it is - *	able to GSO the packet, false otherwise. If the return value is - *	false the stack will do software GSO. + *	performing offload operations on a given packet. This is to give + *	the device an opportunity to implement any restrictions that cannot + *	be otherwise expressed by feature flags. The check is called with + *	the set of features that the stack has calculated and it returns + *	those the driver believes to be appropriate.   *   * int (*ndo_switch_parent_id_get)(struct net_device *dev,   *				   struct netdev_phys_item_id *psid); @@ -1178,8 +1181,9 @@ struct net_device_ops {  							struct net_device *dev,  							void *priv);  	int			(*ndo_get_lock_subclass)(struct net_device *dev); -	bool			(*ndo_gso_check) (struct sk_buff *skb, -						  struct net_device *dev); +	netdev_features_t	(*ndo_features_check) (struct sk_buff *skb, +						       struct net_device *dev, +						       netdev_features_t features);  #ifdef CONFIG_NET_SWITCHDEV  	int			(*ndo_switch_parent_id_get)(struct net_device *dev,  							    struct netdev_phys_item_id *psid); @@ -3611,8 +3615,6 @@ static inline bool netif_needs_gso(struct net_device *dev, struct sk_buff *skb,  				   netdev_features_t features)  {  	return skb_is_gso(skb) && (!skb_gso_ok(skb, features) || -		(dev->netdev_ops->ndo_gso_check && -		 !dev->netdev_ops->ndo_gso_check(skb, dev)) ||  		unlikely((skb->ip_summed != CHECKSUM_PARTIAL) &&  			 (skb->ip_summed != CHECKSUM_UNNECESSARY)));  } diff --git a/include/linux/netlink.h b/include/linux/netlink.h index 9e572daa15d5..02fc86d2348e 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h @@ -46,8 +46,8 @@ struct netlink_kernel_cfg {  	unsigned int	flags;  	void		(*input)(struct sk_buff *skb);  	struct mutex	*cb_mutex; -	int		(*bind)(int group); -	void		(*unbind)(int group); +	int		(*bind)(struct net *net, int group); +	void		(*unbind)(struct net *net, int group);  	bool		(*compare)(struct net *net, struct sock *sk);  }; diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 7ea069cd3257..4b3736f7065c 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -251,7 +251,7 @@ pgoff_t page_cache_prev_hole(struct address_space *mapping,  #define FGP_NOWAIT		0x00000020  struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset, -		int fgp_flags, gfp_t cache_gfp_mask, gfp_t radix_gfp_mask); +		int fgp_flags, gfp_t cache_gfp_mask);  /**   * find_get_page - find and get a page reference @@ -266,13 +266,13 @@ struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset,  static inline struct page *find_get_page(struct address_space *mapping,  					pgoff_t offset)  { -	return pagecache_get_page(mapping, offset, 0, 0, 0); +	return pagecache_get_page(mapping, offset, 0, 0);  }  static inline struct page *find_get_page_flags(struct address_space *mapping,  					pgoff_t offset, int fgp_flags)  { -	return pagecache_get_page(mapping, offset, fgp_flags, 0, 0); +	return pagecache_get_page(mapping, offset, fgp_flags, 0);  }  /** @@ -292,7 +292,7 @@ static inline struct page *find_get_page_flags(struct address_space *mapping,  static inline struct page *find_lock_page(struct address_space *mapping,  					pgoff_t offset)  { -	return pagecache_get_page(mapping, offset, FGP_LOCK, 0, 0); +	return pagecache_get_page(mapping, offset, FGP_LOCK, 0);  }  /** @@ -319,7 +319,7 @@ static inline struct page *find_or_create_page(struct address_space *mapping,  {  	return pagecache_get_page(mapping, offset,  					FGP_LOCK|FGP_ACCESSED|FGP_CREAT, -					gfp_mask, gfp_mask & GFP_RECLAIM_MASK); +					gfp_mask);  }  /** @@ -340,8 +340,7 @@ static inline struct page *grab_cache_page_nowait(struct address_space *mapping,  {  	return pagecache_get_page(mapping, index,  			FGP_LOCK|FGP_CREAT|FGP_NOFS|FGP_NOWAIT, -			mapping_gfp_mask(mapping), -			GFP_NOFS); +			mapping_gfp_mask(mapping));  }  struct page *find_get_entry(struct address_space *mapping, pgoff_t offset); diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index 6cd20d5e651b..a9edab2c787a 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h @@ -271,6 +271,8 @@ typedef struct generic_pm_domain *(*genpd_xlate_t)(struct of_phandle_args *args,  int __of_genpd_add_provider(struct device_node *np, genpd_xlate_t xlate,  			void *data);  void of_genpd_del_provider(struct device_node *np); +struct generic_pm_domain *of_genpd_get_from_provider( +			struct of_phandle_args *genpdspec);  struct generic_pm_domain *__of_genpd_xlate_simple(  					struct of_phandle_args *genpdspec, @@ -288,6 +290,12 @@ static inline int __of_genpd_add_provider(struct device_node *np,  }  static inline void of_genpd_del_provider(struct device_node *np) {} +static inline struct generic_pm_domain *of_genpd_get_from_provider( +			struct of_phandle_args *genpdspec) +{ +	return NULL; +} +  #define __of_genpd_xlate_simple		NULL  #define __of_genpd_xlate_onecell	NULL diff --git a/include/linux/thermal.h b/include/linux/thermal.h index c611a02fbc51..fc52e307efab 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -38,7 +38,7 @@  #define THERMAL_CSTATE_INVALID -1UL  /* No upper/lower limit requirement */ -#define THERMAL_NO_LIMIT	THERMAL_CSTATE_INVALID +#define THERMAL_NO_LIMIT	((u32)~0)  /* Unit conversion macros */  #define KELVIN_TO_CELSIUS(t)	(long)(((long)t-2732 >= 0) ?	\ diff --git a/include/net/genetlink.h b/include/net/genetlink.h index af10c2cf8a1d..84125088c309 100644 --- a/include/net/genetlink.h +++ b/include/net/genetlink.h @@ -31,6 +31,9 @@ struct genl_info;   *	do additional, common, filtering and return an error   * @post_doit: called after an operation's doit callback, it may   *	undo operations done by pre_doit, for example release locks + * @mcast_bind: a socket bound to the given multicast group (which + *	is given as the offset into the groups array) + * @mcast_unbind: a socket was unbound from the given multicast group   * @attrbuf: buffer to store parsed attributes   * @family_list: family list   * @mcgrps: multicast groups used by this family (private) @@ -53,6 +56,8 @@ struct genl_family {  	void			(*post_doit)(const struct genl_ops *ops,  					     struct sk_buff *skb,  					     struct genl_info *info); +	int			(*mcast_bind)(struct net *net, int group); +	void			(*mcast_unbind)(struct net *net, int group);  	struct nlattr **	attrbuf;	/* private */  	const struct genl_ops *	ops;		/* private */  	const struct genl_multicast_group *mcgrps; /* private */ @@ -395,11 +400,11 @@ static inline int genl_set_err(struct genl_family *family, struct net *net,  }  static inline int genl_has_listeners(struct genl_family *family, -				     struct sock *sk, unsigned int group) +				     struct net *net, unsigned int group)  {  	if (WARN_ON_ONCE(group >= family->n_mcgrps))  		return -EINVAL;  	group = family->mcgrp_offset + group; -	return netlink_has_listeners(sk, group); +	return netlink_has_listeners(net->genl_sock, group);  }  #endif	/* __NET_GENERIC_NETLINK_H */ diff --git a/include/net/neighbour.h b/include/net/neighbour.h index eb070b3674a1..76f708486aae 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h @@ -190,7 +190,6 @@ struct neigh_hash_table {  struct neigh_table { -	struct neigh_table	*next;  	int			family;  	int			entry_size;  	int			key_len; diff --git a/include/net/vxlan.h b/include/net/vxlan.h index 57cccd0052e5..903461aa5644 100644 --- a/include/net/vxlan.h +++ b/include/net/vxlan.h @@ -1,6 +1,9 @@  #ifndef __NET_VXLAN_H  #define __NET_VXLAN_H 1 +#include <linux/ip.h> +#include <linux/ipv6.h> +#include <linux/if_vlan.h>  #include <linux/skbuff.h>  #include <linux/netdevice.h>  #include <linux/udp.h> @@ -51,16 +54,33 @@ int vxlan_xmit_skb(struct vxlan_sock *vs,  		   __be32 src, __be32 dst, __u8 tos, __u8 ttl, __be16 df,  		   __be16 src_port, __be16 dst_port, __be32 vni, bool xnet); -static inline bool vxlan_gso_check(struct sk_buff *skb) +static inline netdev_features_t vxlan_features_check(struct sk_buff *skb, +						     netdev_features_t features)  { -	if ((skb_shinfo(skb)->gso_type & SKB_GSO_UDP_TUNNEL) && +	u8 l4_hdr = 0; + +	if (!skb->encapsulation) +		return features; + +	switch (vlan_get_protocol(skb)) { +	case htons(ETH_P_IP): +		l4_hdr = ip_hdr(skb)->protocol; +		break; +	case htons(ETH_P_IPV6): +		l4_hdr = ipv6_hdr(skb)->nexthdr; +		break; +	default: +		return features;; +	} + +	if ((l4_hdr == IPPROTO_UDP) &&  	    (skb->inner_protocol_type != ENCAP_TYPE_ETHER ||  	     skb->inner_protocol != htons(ETH_P_TEB) ||  	     (skb_inner_mac_header(skb) - skb_transport_header(skb) !=  	      sizeof(struct udphdr) + sizeof(struct vxlanhdr)))) -		return false; +		return features & ~(NETIF_F_ALL_CSUM | NETIF_F_GSO_MASK); -	return true; +	return features;  }  /* IP header + UDP + VXLAN + Ethernet header */ diff --git a/include/sound/pcm.h b/include/sound/pcm.h index 1e7f74acc2ec..b429b73e875e 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h @@ -857,7 +857,7 @@ static inline unsigned int params_channels(const struct snd_pcm_hw_params *p)  }  /** - * params_channels - Get the sample rate from the hw params + * params_rate - Get the sample rate from the hw params   * @p: hw params   */  static inline unsigned int params_rate(const struct snd_pcm_hw_params *p) @@ -866,7 +866,7 @@ static inline unsigned int params_rate(const struct snd_pcm_hw_params *p)  }  /** - * params_channels - Get the period size (in frames) from the hw params + * params_period_size - Get the period size (in frames) from the hw params   * @p: hw params   */  static inline unsigned int params_period_size(const struct snd_pcm_hw_params *p) @@ -875,7 +875,7 @@ static inline unsigned int params_period_size(const struct snd_pcm_hw_params *p)  }  /** - * params_channels - Get the number of periods from the hw params + * params_periods - Get the number of periods from the hw params   * @p: hw params   */  static inline unsigned int params_periods(const struct snd_pcm_hw_params *p) @@ -884,7 +884,7 @@ static inline unsigned int params_periods(const struct snd_pcm_hw_params *p)  }  /** - * params_channels - Get the buffer size (in frames) from the hw params + * params_buffer_size - Get the buffer size (in frames) from the hw params   * @p: hw params   */  static inline unsigned int params_buffer_size(const struct snd_pcm_hw_params *p) @@ -893,7 +893,7 @@ static inline unsigned int params_buffer_size(const struct snd_pcm_hw_params *p)  }  /** - * params_channels - Get the buffer size (in bytes) from the hw params + * params_buffer_bytes - Get the buffer size (in bytes) from the hw params   * @p: hw params   */  static inline unsigned int params_buffer_bytes(const struct snd_pcm_hw_params *p) diff --git a/include/uapi/linux/in6.h b/include/uapi/linux/in6.h index 74a2a1773494..79b12b004ade 100644 --- a/include/uapi/linux/in6.h +++ b/include/uapi/linux/in6.h @@ -149,7 +149,7 @@ struct in6_flowlabel_req {  /*   *	IPV6 socket options   */ - +#if __UAPI_DEF_IPV6_OPTIONS  #define IPV6_ADDRFORM		1  #define IPV6_2292PKTINFO	2  #define IPV6_2292HOPOPTS	3 @@ -196,6 +196,7 @@ struct in6_flowlabel_req {  #define IPV6_IPSEC_POLICY	34  #define IPV6_XFRM_POLICY	35 +#endif  /*   * Multicast: diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h index c140620dad92..e28807ad17fa 100644 --- a/include/uapi/linux/libc-compat.h +++ b/include/uapi/linux/libc-compat.h @@ -69,6 +69,7 @@  #define __UAPI_DEF_SOCKADDR_IN6		0  #define __UAPI_DEF_IPV6_MREQ		0  #define __UAPI_DEF_IPPROTO_V6		0 +#define __UAPI_DEF_IPV6_OPTIONS		0  #else @@ -82,6 +83,7 @@  #define __UAPI_DEF_SOCKADDR_IN6		1  #define __UAPI_DEF_IPV6_MREQ		1  #define __UAPI_DEF_IPPROTO_V6		1 +#define __UAPI_DEF_IPV6_OPTIONS		1  #endif /* _NETINET_IN_H */ @@ -103,6 +105,7 @@  #define __UAPI_DEF_SOCKADDR_IN6		1  #define __UAPI_DEF_IPV6_MREQ		1  #define __UAPI_DEF_IPPROTO_V6		1 +#define __UAPI_DEF_IPV6_OPTIONS		1  /* Definitions for xattr.h */  #define __UAPI_DEF_XATTR		1 diff --git a/include/uapi/linux/virtio_ring.h b/include/uapi/linux/virtio_ring.h index 61c818a7fe70..a3318f31e8e7 100644 --- a/include/uapi/linux/virtio_ring.h +++ b/include/uapi/linux/virtio_ring.h @@ -101,6 +101,13 @@ struct vring {  	struct vring_used *used;  }; +/* Alignment requirements for vring elements. + * When using pre-virtio 1.0 layout, these fall out naturally. + */ +#define VRING_AVAIL_ALIGN_SIZE 2 +#define VRING_USED_ALIGN_SIZE 4 +#define VRING_DESC_ALIGN_SIZE 16 +  /* The standard layout for the ring is a continuous chunk of memory which looks   * like this.  We assume num is a power of 2.   *  | 
