History

Merge v5.7-rc5 into driver-core-next

We want the driver core fixes in here and this resolves a merge issue with drivers/base/dd.c

Greg Kroah-Hartman committed 6 years ago

Commit c8be6af2 parents c78c31b 2ef96a5461 files · +4386 −2037Browse files

Showing the changes to include/linux (16 of 461 files). Show all

Unified · Split

16 files
  1. include/linux/amba/bus.h +1 −0
  2. include/linux/backing-dev-defs.h +1 −0
  3. include/linux/backing-dev.h +1 −8
  4. include/linux/dma-buf.h +1 −2
  5. include/linux/dmaengine.h +6 −6
  6. include/linux/fs.h +1 −1
  7. include/linux/lsm_hook_defs.h +1 −1
  8. include/linux/mhi.h +10 −6
  9. include/linux/nfs_xdr.h +2 −0
  10. include/linux/platform_data/cros_ec_sensorhub.h +1 −0
  11. include/linux/platform_device.h +1 −0
  12. include/linux/sunrpc/clnt.h +12 −1
  13. include/linux/tcp.h +0 −51
  14. include/linux/tty.h +1 −1
  15. include/linux/virtio_net.h +24 −2
  16. include/linux/virtio_vsock.h +1 −0
include/linux/amba/bus.h+1−0
@@ -65,6 +65,7 @@ struct amba_device { · 64 unmodified lines
6565 struct device dev;
6666 struct resource res;
6767 struct clk *pclk;
68+ struct device_dma_parameters dma_parms;
6869 unsigned int periphid;
6970 unsigned int cid;
7071 struct amba_cs_uci_id uci;
include/linux/backing-dev-defs.h+1−0
@@ -219,6 +219,7 @@ struct backing_dev_info { · 218 unmodified lines
219219 wait_queue_head_t wb_waitq;
220220
221221 struct device *dev;
222+ char dev_name[64];
222223 struct device *owner;
223224
224225 struct timer_list laptop_mode_wb_timer;
include/linux/backing-dev.h+1−8
@@ -505,13 +505,6 @@ static inline int bdi_rw_congested(struct backing_dev_info *bdi) · 504 unmodified lines
505505 (1 << WB_async_congested));
506506 }
507507
508−extern const char *bdi_unknown_name;
509−
510−static inline const char *bdi_dev_name(struct backing_dev_info *bdi)
511−{
512− if (!bdi || !bdi->dev)
513− return bdi_unknown_name;
514− return dev_name(bdi->dev);
515−}
508+const char *bdi_dev_name(struct backing_dev_info *bdi);
516509
517510 #endif /* _LINUX_BACKING_DEV_H */
include/linux/dma-buf.h+1−2
@@ -329,13 +329,12 @@ struct dma_buf { · 328 unmodified lines
329329
330330 /**
331331 * struct dma_buf_attach_ops - importer operations for an attachment
332− * @move_notify: [optional] notification that the DMA-buf is moving
333332 *
334333 * Attachment operations implemented by the importer.
335334 */
336335 struct dma_buf_attach_ops {
337336 /**
338− * @move_notify
337+ * @move_notify: [optional] notification that the DMA-buf is moving
339338 *
340339 * If this callback is provided the framework can avoid pinning the
341340 * backing store while mappings exists.
include/linux/dmaengine.h+6−6
@@ -83,9 +83,9 @@ enum dma_transfer_direction { · 82 unmodified lines
8383 /**
8484 * Interleaved Transfer Request
8585 * ----------------------------
86− * A chunk is collection of contiguous bytes to be transfered.
86+ * A chunk is collection of contiguous bytes to be transferred.
8787 * The gap(in bytes) between two chunks is called inter-chunk-gap(ICG).
88− * ICGs may or maynot change between chunks.
88+ * ICGs may or may not change between chunks.
8989 * A FRAME is the smallest series of contiguous {chunk,icg} pairs,
9090 * that when repeated an integral number of times, specifies the transfer.
9191 * A transfer template is specification of a Frame, the number of times
@@ -341,13 +341,11 @@ struct dma_chan { · 249 unmodified lines
341341 * @chan: driver channel device
342342 * @device: sysfs device
343343 * @dev_id: parent dma_device dev_id
344− * @idr_ref: reference count to gate release of dma_device dev_id
345344 */
346345 struct dma_chan_dev {
347346 struct dma_chan *chan;
348347 struct device device;
349348 int dev_id;
350− atomic_t *idr_ref;
351349 };
352350
353351 /**
@@ -835,6 +833,8 @@ struct dma_device { · 481 unmodified lines
835833 int dev_id;
836834 struct device *dev;
837835 struct module *owner;
836+ struct ida chan_ida;
837+ struct mutex chan_mutex; /* to protect chan_ida */
838838
839839 u32 src_addr_widths;
840840 u32 dst_addr_widths;
@@ -1069,7 +1069,7 @@ static inline int dmaengine_terminate_all(struct dma_chan *chan) · 228 unmodified lines
10691069 * dmaengine_synchronize() needs to be called before it is safe to free
10701070 * any memory that is accessed by previously submitted descriptors or before
10711071 * freeing any resources accessed from within the completion callback of any
1072− * perviously submitted descriptors.
1072+ * previously submitted descriptors.
10731073 *
10741074 * This function can be called from atomic context as well as from within a
10751075 * complete callback of a descriptor submitted on the same channel.
@@ -1091,7 +1091,7 @@ static inline int dmaengine_terminate_async(struct dma_chan *chan) · 15 unmodified lines
10911091 *
10921092 * Synchronizes to the DMA channel termination to the current context. When this
10931093 * function returns it is guaranteed that all transfers for previously issued
1094− * descriptors have stopped and and it is safe to free the memory assoicated
1094+ * descriptors have stopped and it is safe to free the memory associated
10951095 * with them. Furthermore it is guaranteed that all complete callback functions
10961096 * for a previously submitted descriptor have finished running and it is safe to
10971097 * free resources accessed from within the complete callbacks.
include/linux/fs.h+1−1
@@ -983,7 +983,7 @@ struct file_handle { · 982 unmodified lines
983983 __u32 handle_bytes;
984984 int handle_type;
985985 /* file identifier */
986− unsigned char f_handle[0];
986+ unsigned char f_handle[];
987987 };
988988
989989 static inline struct file *get_file(struct file *f)
include/linux/lsm_hook_defs.h+1−1
@@ -55,7 +55,7 @@ LSM_HOOK(void, LSM_RET_VOID, bprm_committing_creds, struct linux_binprm *bprm) · 54 unmodified lines
5555 LSM_HOOK(void, LSM_RET_VOID, bprm_committed_creds, struct linux_binprm *bprm)
5656 LSM_HOOK(int, 0, fs_context_dup, struct fs_context *fc,
5757 struct fs_context *src_sc)
58−LSM_HOOK(int, 0, fs_context_parse_param, struct fs_context *fc,
58+LSM_HOOK(int, -ENOPARAM, fs_context_parse_param, struct fs_context *fc,
5959 struct fs_parameter *param)
6060 LSM_HOOK(int, 0, sb_alloc_security, struct super_block *sb)
6161 LSM_HOOK(void, LSM_RET_VOID, sb_free_security, struct super_block *sb)
include/linux/mhi.h+10−6
@@ -53,9 +53,9 @@ enum mhi_callback { · 52 unmodified lines
5353 * @MHI_CHAIN: Linked transfer
5454 */
5555 enum mhi_flags {
56− MHI_EOB,
57− MHI_EOT,
58− MHI_CHAIN,
56+ MHI_EOB = BIT(0),
57+ MHI_EOT = BIT(1),
58+ MHI_CHAIN = BIT(2),
5959 };
6060
6161 /**
@@ -335,14 +335,15 @@ struct mhi_controller_config { · 273 unmodified lines
335335 * @syserr_worker: System error worker
336336 * @state_event: State change event
337337 * @status_cb: CB function to notify power states of the device (required)
338− * @link_status: CB function to query link status of the device (required)
339338 * @wake_get: CB function to assert device wake (optional)
340339 * @wake_put: CB function to de-assert device wake (optional)
341340 * @wake_toggle: CB function to assert and de-assert device wake (optional)
342341 * @runtime_get: CB function to controller runtime resume (required)
343− * @runtimet_put: CB function to decrement pm usage (required)
342+ * @runtime_put: CB function to decrement pm usage (required)
344343 * @map_single: CB function to create TRE buffer
345344 * @unmap_single: CB function to destroy TRE buffer
345+ * @read_reg: Read a MHI register via the physical link (required)
346+ * @write_reg: Write a MHI register via the physical link (required)
346347 * @buffer_len: Bounce buffer length
347348 * @bounce_buf: Use of bounce buffer
348349 * @fbc_download: MHI host needs to do complete image transfer (optional)
@@ -417,7 +418,6 @@ struct mhi_controller { · 68 unmodified lines
417418
418419 void (*status_cb)(struct mhi_controller *mhi_cntrl,
419420 enum mhi_callback cb);
420− int (*link_status)(struct mhi_controller *mhi_cntrl);
421421 void (*wake_get)(struct mhi_controller *mhi_cntrl, bool override);
422422 void (*wake_put)(struct mhi_controller *mhi_cntrl, bool override);
423423 void (*wake_toggle)(struct mhi_controller *mhi_cntrl);
@@ -427,6 +427,10 @@ struct mhi_controller { · 3 unmodified lines
427427 struct mhi_buf_info *buf);
428428 void (*unmap_single)(struct mhi_controller *mhi_cntrl,
429429 struct mhi_buf_info *buf);
430+ int (*read_reg)(struct mhi_controller *mhi_cntrl, void __iomem *addr,
431+ u32 *out);
432+ void (*write_reg)(struct mhi_controller *mhi_cntrl, void __iomem *addr,
433+ u32 val);
430434
431435 size_t buffer_len;
432436 bool bounce_buf;
include/linux/nfs_xdr.h+2−0
@@ -1317,11 +1317,13 @@ struct nfs41_impl_id { · 1316 unmodified lines
13171317 struct nfstime4 date;
13181318 };
13191319
1320+#define MAX_BIND_CONN_TO_SESSION_RETRIES 3
13201321 struct nfs41_bind_conn_to_session_args {
13211322 struct nfs_client *client;
13221323 struct nfs4_sessionid sessionid;
13231324 u32 dir;
13241325 bool use_conn_in_rdma_mode;
1326+ int retries;
13251327 };
13261328
13271329 struct nfs41_bind_conn_to_session_res {
include/linux/platform_data/cros_ec_sensorhub.h+1−0
@@ -185,6 +185,7 @@ int cros_ec_sensorhub_register_push_data(struct cros_ec_sensorhub *sensorhub, · 184 unmodified lines
185185 void cros_ec_sensorhub_unregister_push_data(struct cros_ec_sensorhub *sensorhub,
186186 u8 sensor_num);
187187
188+int cros_ec_sensorhub_ring_allocate(struct cros_ec_sensorhub *sensorhub);
188189 int cros_ec_sensorhub_ring_add(struct cros_ec_sensorhub *sensorhub);
189190 void cros_ec_sensorhub_ring_remove(void *arg);
190191 int cros_ec_sensorhub_ring_fifo_enable(struct cros_ec_sensorhub *sensorhub,
include/linux/platform_device.h+1−0
@@ -25,6 +25,7 @@ struct platform_device { · 24 unmodified lines
2525 bool id_auto;
2626 struct device dev;
2727 u64 platform_dma_mask;
28+ struct device_dma_parameters dma_parms;
2829 u32 num_resources;
2930 struct resource *resource;
3031
include/linux/sunrpc/clnt.h+12−1
@@ -71,7 +71,13 @@ struct rpc_clnt { · 70 unmodified lines
7171 #if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
7272 struct dentry *cl_debugfs; /* debugfs directory */
7373 #endif
74− struct rpc_xprt_iter cl_xpi;
74+ /* cl_work is only needed after cl_xpi is no longer used,
75+ * and that are of similar size
76+ */
77+ union {
78+ struct rpc_xprt_iter cl_xpi;
79+ struct work_struct cl_work;
80+ };
7581 const struct cred *cl_cred;
7682 };
7783
@@ -236,4 +242,9 @@ static inline int rpc_reply_expected(struct rpc_task *task) · 158 unmodified lines
236242 (task->tk_msg.rpc_proc->p_decode != NULL);
237243 }
238244
245+static inline void rpc_task_close_connection(struct rpc_task *task)
246+{
247+ if (task->tk_xprt)
248+ xprt_force_disconnect(task->tk_xprt);
249+}
239250 #endif /* _LINUX_SUNRPC_CLNT_H */
include/linux/tcp.h+0−51
@@ -78,47 +78,6 @@ struct tcp_sack_block { · 77 unmodified lines
7878 #define TCP_SACK_SEEN (1 << 0) /*1 = peer is SACK capable, */
7979 #define TCP_DSACK_SEEN (1 << 2) /*1 = DSACK was received from peer*/
8080
81−#if IS_ENABLED(CONFIG_MPTCP)
82−struct mptcp_options_received {
83− u64 sndr_key;
84− u64 rcvr_key;
85− u64 data_ack;
86− u64 data_seq;
87− u32 subflow_seq;
88− u16 data_len;
89− u16 mp_capable : 1,
90− mp_join : 1,
91− dss : 1,
92− add_addr : 1,
93− rm_addr : 1,
94− family : 4,
95− echo : 1,
96− backup : 1;
97− u32 token;
98− u32 nonce;
99− u64 thmac;
100− u8 hmac[20];
101− u8 join_id;
102− u8 use_map:1,
103− dsn64:1,
104− data_fin:1,
105− use_ack:1,
106− ack64:1,
107− mpc_map:1,
108− __unused:2;
109− u8 addr_id;
110− u8 rm_id;
111− union {
112− struct in_addr addr;
113−#if IS_ENABLED(CONFIG_MPTCP_IPV6)
114− struct in6_addr addr6;
115−#endif
116− };
117− u64 ahmac;
118− u16 port;
119−};
120−#endif
121−
12281 struct tcp_options_received {
12382 /* PAWS/RTTM data */
12483 int ts_recent_stamp;/* Time we stored ts_recent (for aging) */
@@ -136,9 +95,6 @@ struct tcp_options_received { · 11 unmodified lines
13695 u8 num_sacks; /* Number of SACK blocks */
13796 u16 user_mss; /* mss requested by user in ioctl */
13897 u16 mss_clamp; /* Maximal mss, negotiated at connection setup */
139−#if IS_ENABLED(CONFIG_MPTCP)
140− struct mptcp_options_received mptcp;
141−#endif
14298 };
14399
144100 static inline void tcp_clear_options(struct tcp_options_received *rx_opt)
@@ -148,13 +104,6 @@ static inline void tcp_clear_options(struct tcp_options_received *rx_opt) · 3 unmodified lines
148104 #if IS_ENABLED(CONFIG_SMC)
149105 rx_opt->smc_ok = 0;
150106 #endif
151−#if IS_ENABLED(CONFIG_MPTCP)
152− rx_opt->mptcp.mp_capable = 0;
153− rx_opt->mptcp.mp_join = 0;
154− rx_opt->mptcp.add_addr = 0;
155− rx_opt->mptcp.rm_addr = 0;
156− rx_opt->mptcp.dss = 0;
157−#endif
158107 }
159108
160109 /* This is the max number of SACKS that we'll generate and process. It's safe
include/linux/tty.h+1−1
@@ -66,7 +66,7 @@ struct tty_buffer { · 65 unmodified lines
6666 int read;
6767 int flags;
6868 /* Data points here */
69− unsigned long data[0];
69+ unsigned long data[];
7070 };
7171
7272 /* Values for .flags field of tty_buffer */
include/linux/virtio_net.h+24−2
@@ -3,6 +3,8 @@ · 2 unmodified lines
33 #define _LINUX_VIRTIO_NET_H
44
55 #include <linux/if_vlan.h>
6+#include <uapi/linux/tcp.h>
7+#include <uapi/linux/udp.h>
68 #include <uapi/linux/virtio_net.h>
79
810 static inline int virtio_net_hdr_set_proto(struct sk_buff *skb,
@@ -28,17 +30,25 @@ static inline int virtio_net_hdr_to_skb(struct sk_buff *skb, · 19 unmodified lines
2830 bool little_endian)
2931 {
3032 unsigned int gso_type = 0;
33+ unsigned int thlen = 0;
34+ unsigned int ip_proto;
3135
3236 if (hdr->gso_type != VIRTIO_NET_HDR_GSO_NONE) {
3337 switch (hdr->gso_type & ~VIRTIO_NET_HDR_GSO_ECN) {
3438 case VIRTIO_NET_HDR_GSO_TCPV4:
3539 gso_type = SKB_GSO_TCPV4;
40+ ip_proto = IPPROTO_TCP;
41+ thlen = sizeof(struct tcphdr);
3642 break;
3743 case VIRTIO_NET_HDR_GSO_TCPV6:
3844 gso_type = SKB_GSO_TCPV6;
45+ ip_proto = IPPROTO_TCP;
46+ thlen = sizeof(struct tcphdr);
3947 break;
4048 case VIRTIO_NET_HDR_GSO_UDP:
4149 gso_type = SKB_GSO_UDP;
50+ ip_proto = IPPROTO_UDP;
51+ thlen = sizeof(struct udphdr);
4252 break;
4353 default:
4454 return -EINVAL;
@@ -57,16 +67,22 @@ static inline int virtio_net_hdr_to_skb(struct sk_buff *skb, · 12 unmodified lines
5767
5868 if (!skb_partial_csum_set(skb, start, off))
5969 return -EINVAL;
70+
71+ if (skb_transport_offset(skb) + thlen > skb_headlen(skb))
72+ return -EINVAL;
6073 } else {
6174 /* gso packets without NEEDS_CSUM do not set transport_offset.
6275 * probe and drop if does not match one of the above types.
6376 */
6477 if (gso_type && skb->network_header) {
78+ struct flow_keys_basic keys;
79+
6580 if (!skb->protocol)
6681 virtio_net_hdr_set_proto(skb, hdr);
6782 retry:
68− skb_probe_transport_header(skb);
69− if (!skb_transport_header_was_set(skb)) {
83+ if (!skb_flow_dissect_flow_keys_basic(NULL, skb, &keys,
84+ NULL, 0, 0, 0,
85+ 0)) {
7086 /* UFO does not specify ipv4 or 6: try both */
7187 if (gso_type & SKB_GSO_UDP &&
7288 skb->protocol == htons(ETH_P_IP)) {
@@ -75,6 +91,12 @@ retry: · 2 unmodified lines
7591 }
7692 return -EINVAL;
7793 }
94+
95+ if (keys.control.thoff + thlen > skb_headlen(skb) ||
96+ keys.basic.ip_proto != ip_proto)
97+ return -EINVAL;
98+
99+ skb_set_transport_header(skb, keys.control.thoff);
78100 }
79101 }
80102
include/linux/virtio_vsock.h+1−0
@@ -48,6 +48,7 @@ struct virtio_vsock_pkt { · 47 unmodified lines
4848 u32 len;
4949 u32 off;
5050 bool reply;
51+ bool tap_delivered;
5152 };
5253
5354 struct virtio_vsock_pkt_info {