diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-23 17:05:10 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-23 17:05:10 -0400 |
commit | 5617c05d44ebd7b75973b5b31a9f2e55e5882d3f (patch) | |
tree | 7250f4b5690c141115a13afdb21c12cc720ae79c /include | |
parent | 22db87ba6bbefcb12493ae9c7be2037f5f12639d (diff) | |
parent | 25cd9721c2b16ee0d775e36ec3af31f392003f80 (diff) |
Merge tag 'fixes-for-v4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
Felipe writes:
usb: fixes for v4.11-rc4
f_acm got an endianness fix by Oliver Neukum. This has been around for a
long time but it's finally fixed.
f_hid learned that it should never access hidg->req without first
grabbing the spinlock.
Roger Quadros fixed two bugs in the f_uvc function driver.
Janusz Dziedzic fixed a very peculiar bug with EP0, one that's rather
difficult to trigger. When we're dealing with bounced EP0 requests, we
should delay unmap until after ->complete() is called.
UDC class got a use-after-free fix.
Diffstat (limited to 'include')
-rw-r--r-- | include/crypto/if_alg.h | 2 | ||||
-rw-r--r-- | include/linux/acpi.h | 5 | ||||
-rw-r--r-- | include/linux/dccp.h | 1 | ||||
-rw-r--r-- | include/linux/device.h | 1 | ||||
-rw-r--r-- | include/linux/filter.h | 16 | ||||
-rw-r--r-- | include/linux/kasan.h | 1 | ||||
-rw-r--r-- | include/linux/list_nulls.h | 5 | ||||
-rw-r--r-- | include/linux/net.h | 2 | ||||
-rw-r--r-- | include/linux/phy.h | 4 | ||||
-rw-r--r-- | include/linux/rculist_nulls.h | 14 | ||||
-rw-r--r-- | include/net/inet_common.h | 3 | ||||
-rw-r--r-- | include/net/inet_connection_sock.h | 2 | ||||
-rw-r--r-- | include/net/sctp/structs.h | 3 | ||||
-rw-r--r-- | include/net/sock.h | 9 | ||||
-rw-r--r-- | include/scsi/libiscsi.h | 1 | ||||
-rw-r--r-- | include/scsi/scsi_device.h | 4 | ||||
-rw-r--r-- | include/target/target_core_backend.h | 7 | ||||
-rw-r--r-- | include/target/target_core_base.h | 2 | ||||
-rw-r--r-- | include/uapi/drm/omap_drm.h | 38 | ||||
-rw-r--r-- | include/uapi/linux/packet_diag.h | 2 |
20 files changed, 83 insertions, 39 deletions
diff --git a/include/crypto/if_alg.h b/include/crypto/if_alg.h index a2bfd7843f18..e2b9c6fe2714 100644 --- a/include/crypto/if_alg.h +++ b/include/crypto/if_alg.h | |||
@@ -73,7 +73,7 @@ int af_alg_unregister_type(const struct af_alg_type *type); | |||
73 | 73 | ||
74 | int af_alg_release(struct socket *sock); | 74 | int af_alg_release(struct socket *sock); |
75 | void af_alg_release_parent(struct sock *sk); | 75 | void af_alg_release_parent(struct sock *sk); |
76 | int af_alg_accept(struct sock *sk, struct socket *newsock); | 76 | int af_alg_accept(struct sock *sk, struct socket *newsock, bool kern); |
77 | 77 | ||
78 | int af_alg_make_sg(struct af_alg_sgl *sgl, struct iov_iter *iter, int len); | 78 | int af_alg_make_sg(struct af_alg_sgl *sgl, struct iov_iter *iter, int len); |
79 | void af_alg_free_sg(struct af_alg_sgl *sgl); | 79 | void af_alg_free_sg(struct af_alg_sgl *sgl); |
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 673acda012af..9b05886f9773 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -287,18 +287,15 @@ static inline bool invalid_phys_cpuid(phys_cpuid_t phys_id) | |||
287 | } | 287 | } |
288 | 288 | ||
289 | /* Validate the processor object's proc_id */ | 289 | /* Validate the processor object's proc_id */ |
290 | bool acpi_processor_validate_proc_id(int proc_id); | 290 | bool acpi_duplicate_processor_id(int proc_id); |
291 | 291 | ||
292 | #ifdef CONFIG_ACPI_HOTPLUG_CPU | 292 | #ifdef CONFIG_ACPI_HOTPLUG_CPU |
293 | /* Arch dependent functions for cpu hotplug support */ | 293 | /* Arch dependent functions for cpu hotplug support */ |
294 | int acpi_map_cpu(acpi_handle handle, phys_cpuid_t physid, u32 acpi_id, | 294 | int acpi_map_cpu(acpi_handle handle, phys_cpuid_t physid, u32 acpi_id, |
295 | int *pcpu); | 295 | int *pcpu); |
296 | int acpi_unmap_cpu(int cpu); | 296 | int acpi_unmap_cpu(int cpu); |
297 | int acpi_map_cpu2node(acpi_handle handle, int cpu, int physid); | ||
298 | #endif /* CONFIG_ACPI_HOTPLUG_CPU */ | 297 | #endif /* CONFIG_ACPI_HOTPLUG_CPU */ |
299 | 298 | ||
300 | void acpi_set_processor_mapping(void); | ||
301 | |||
302 | #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC | 299 | #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC |
303 | int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr); | 300 | int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr); |
304 | #endif | 301 | #endif |
diff --git a/include/linux/dccp.h b/include/linux/dccp.h index 61d042bbbf60..68449293c4b6 100644 --- a/include/linux/dccp.h +++ b/include/linux/dccp.h | |||
@@ -163,6 +163,7 @@ struct dccp_request_sock { | |||
163 | __u64 dreq_isr; | 163 | __u64 dreq_isr; |
164 | __u64 dreq_gsr; | 164 | __u64 dreq_gsr; |
165 | __be32 dreq_service; | 165 | __be32 dreq_service; |
166 | spinlock_t dreq_lock; | ||
166 | struct list_head dreq_featneg; | 167 | struct list_head dreq_featneg; |
167 | __u32 dreq_timestamp_echo; | 168 | __u32 dreq_timestamp_echo; |
168 | __u32 dreq_timestamp_time; | 169 | __u32 dreq_timestamp_time; |
diff --git a/include/linux/device.h b/include/linux/device.h index 30c4570e928d..9ef518af5515 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -1140,7 +1140,6 @@ static inline bool device_supports_offline(struct device *dev) | |||
1140 | extern void lock_device_hotplug(void); | 1140 | extern void lock_device_hotplug(void); |
1141 | extern void unlock_device_hotplug(void); | 1141 | extern void unlock_device_hotplug(void); |
1142 | extern int lock_device_hotplug_sysfs(void); | 1142 | extern int lock_device_hotplug_sysfs(void); |
1143 | void assert_held_device_hotplug(void); | ||
1144 | extern int device_offline(struct device *dev); | 1143 | extern int device_offline(struct device *dev); |
1145 | extern int device_online(struct device *dev); | 1144 | extern int device_online(struct device *dev); |
1146 | extern void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode); | 1145 | extern void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode); |
diff --git a/include/linux/filter.h b/include/linux/filter.h index 0c167fdee5f7..fbf7b39e8103 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h | |||
@@ -409,6 +409,7 @@ struct bpf_prog { | |||
409 | u16 pages; /* Number of allocated pages */ | 409 | u16 pages; /* Number of allocated pages */ |
410 | kmemcheck_bitfield_begin(meta); | 410 | kmemcheck_bitfield_begin(meta); |
411 | u16 jited:1, /* Is our filter JIT'ed? */ | 411 | u16 jited:1, /* Is our filter JIT'ed? */ |
412 | locked:1, /* Program image locked? */ | ||
412 | gpl_compatible:1, /* Is filter GPL compatible? */ | 413 | gpl_compatible:1, /* Is filter GPL compatible? */ |
413 | cb_access:1, /* Is control block accessed? */ | 414 | cb_access:1, /* Is control block accessed? */ |
414 | dst_needed:1, /* Do we need dst entry? */ | 415 | dst_needed:1, /* Do we need dst entry? */ |
@@ -554,22 +555,29 @@ static inline bool bpf_prog_was_classic(const struct bpf_prog *prog) | |||
554 | #ifdef CONFIG_ARCH_HAS_SET_MEMORY | 555 | #ifdef CONFIG_ARCH_HAS_SET_MEMORY |
555 | static inline void bpf_prog_lock_ro(struct bpf_prog *fp) | 556 | static inline void bpf_prog_lock_ro(struct bpf_prog *fp) |
556 | { | 557 | { |
557 | set_memory_ro((unsigned long)fp, fp->pages); | 558 | fp->locked = 1; |
559 | WARN_ON_ONCE(set_memory_ro((unsigned long)fp, fp->pages)); | ||
558 | } | 560 | } |
559 | 561 | ||
560 | static inline void bpf_prog_unlock_ro(struct bpf_prog *fp) | 562 | static inline void bpf_prog_unlock_ro(struct bpf_prog *fp) |
561 | { | 563 | { |
562 | set_memory_rw((unsigned long)fp, fp->pages); | 564 | if (fp->locked) { |
565 | WARN_ON_ONCE(set_memory_rw((unsigned long)fp, fp->pages)); | ||
566 | /* In case set_memory_rw() fails, we want to be the first | ||
567 | * to crash here instead of some random place later on. | ||
568 | */ | ||
569 | fp->locked = 0; | ||
570 | } | ||
563 | } | 571 | } |
564 | 572 | ||
565 | static inline void bpf_jit_binary_lock_ro(struct bpf_binary_header *hdr) | 573 | static inline void bpf_jit_binary_lock_ro(struct bpf_binary_header *hdr) |
566 | { | 574 | { |
567 | set_memory_ro((unsigned long)hdr, hdr->pages); | 575 | WARN_ON_ONCE(set_memory_ro((unsigned long)hdr, hdr->pages)); |
568 | } | 576 | } |
569 | 577 | ||
570 | static inline void bpf_jit_binary_unlock_ro(struct bpf_binary_header *hdr) | 578 | static inline void bpf_jit_binary_unlock_ro(struct bpf_binary_header *hdr) |
571 | { | 579 | { |
572 | set_memory_rw((unsigned long)hdr, hdr->pages); | 580 | WARN_ON_ONCE(set_memory_rw((unsigned long)hdr, hdr->pages)); |
573 | } | 581 | } |
574 | #else | 582 | #else |
575 | static inline void bpf_prog_lock_ro(struct bpf_prog *fp) | 583 | static inline void bpf_prog_lock_ro(struct bpf_prog *fp) |
diff --git a/include/linux/kasan.h b/include/linux/kasan.h index 1c823bef4c15..5734480c9590 100644 --- a/include/linux/kasan.h +++ b/include/linux/kasan.h | |||
@@ -6,6 +6,7 @@ | |||
6 | struct kmem_cache; | 6 | struct kmem_cache; |
7 | struct page; | 7 | struct page; |
8 | struct vm_struct; | 8 | struct vm_struct; |
9 | struct task_struct; | ||
9 | 10 | ||
10 | #ifdef CONFIG_KASAN | 11 | #ifdef CONFIG_KASAN |
11 | 12 | ||
diff --git a/include/linux/list_nulls.h b/include/linux/list_nulls.h index b01fe1009084..87ff4f58a2f0 100644 --- a/include/linux/list_nulls.h +++ b/include/linux/list_nulls.h | |||
@@ -29,6 +29,11 @@ struct hlist_nulls_node { | |||
29 | ((ptr)->first = (struct hlist_nulls_node *) NULLS_MARKER(nulls)) | 29 | ((ptr)->first = (struct hlist_nulls_node *) NULLS_MARKER(nulls)) |
30 | 30 | ||
31 | #define hlist_nulls_entry(ptr, type, member) container_of(ptr,type,member) | 31 | #define hlist_nulls_entry(ptr, type, member) container_of(ptr,type,member) |
32 | |||
33 | #define hlist_nulls_entry_safe(ptr, type, member) \ | ||
34 | ({ typeof(ptr) ____ptr = (ptr); \ | ||
35 | !is_a_nulls(____ptr) ? hlist_nulls_entry(____ptr, type, member) : NULL; \ | ||
36 | }) | ||
32 | /** | 37 | /** |
33 | * ptr_is_a_nulls - Test if a ptr is a nulls | 38 | * ptr_is_a_nulls - Test if a ptr is a nulls |
34 | * @ptr: ptr to be tested | 39 | * @ptr: ptr to be tested |
diff --git a/include/linux/net.h b/include/linux/net.h index cd0c8bd0a1de..0620f5e18c96 100644 --- a/include/linux/net.h +++ b/include/linux/net.h | |||
@@ -146,7 +146,7 @@ struct proto_ops { | |||
146 | int (*socketpair)(struct socket *sock1, | 146 | int (*socketpair)(struct socket *sock1, |
147 | struct socket *sock2); | 147 | struct socket *sock2); |
148 | int (*accept) (struct socket *sock, | 148 | int (*accept) (struct socket *sock, |
149 | struct socket *newsock, int flags); | 149 | struct socket *newsock, int flags, bool kern); |
150 | int (*getname) (struct socket *sock, | 150 | int (*getname) (struct socket *sock, |
151 | struct sockaddr *addr, | 151 | struct sockaddr *addr, |
152 | int *sockaddr_len, int peer); | 152 | int *sockaddr_len, int peer); |
diff --git a/include/linux/phy.h b/include/linux/phy.h index 772476028a65..43a774873aa9 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h | |||
@@ -837,6 +837,10 @@ int genphy_read_status(struct phy_device *phydev); | |||
837 | int genphy_suspend(struct phy_device *phydev); | 837 | int genphy_suspend(struct phy_device *phydev); |
838 | int genphy_resume(struct phy_device *phydev); | 838 | int genphy_resume(struct phy_device *phydev); |
839 | int genphy_soft_reset(struct phy_device *phydev); | 839 | int genphy_soft_reset(struct phy_device *phydev); |
840 | static inline int genphy_no_soft_reset(struct phy_device *phydev) | ||
841 | { | ||
842 | return 0; | ||
843 | } | ||
840 | void phy_driver_unregister(struct phy_driver *drv); | 844 | void phy_driver_unregister(struct phy_driver *drv); |
841 | void phy_drivers_unregister(struct phy_driver *drv, int n); | 845 | void phy_drivers_unregister(struct phy_driver *drv, int n); |
842 | int phy_driver_register(struct phy_driver *new_driver, struct module *owner); | 846 | int phy_driver_register(struct phy_driver *new_driver, struct module *owner); |
diff --git a/include/linux/rculist_nulls.h b/include/linux/rculist_nulls.h index 4ae95f7e8597..a23a33153180 100644 --- a/include/linux/rculist_nulls.h +++ b/include/linux/rculist_nulls.h | |||
@@ -156,5 +156,19 @@ static inline void hlist_nulls_add_tail_rcu(struct hlist_nulls_node *n, | |||
156 | ({ tpos = hlist_nulls_entry(pos, typeof(*tpos), member); 1; }); \ | 156 | ({ tpos = hlist_nulls_entry(pos, typeof(*tpos), member); 1; }); \ |
157 | pos = rcu_dereference_raw(hlist_nulls_next_rcu(pos))) | 157 | pos = rcu_dereference_raw(hlist_nulls_next_rcu(pos))) |
158 | 158 | ||
159 | /** | ||
160 | * hlist_nulls_for_each_entry_safe - | ||
161 | * iterate over list of given type safe against removal of list entry | ||
162 | * @tpos: the type * to use as a loop cursor. | ||
163 | * @pos: the &struct hlist_nulls_node to use as a loop cursor. | ||
164 | * @head: the head for your list. | ||
165 | * @member: the name of the hlist_nulls_node within the struct. | ||
166 | */ | ||
167 | #define hlist_nulls_for_each_entry_safe(tpos, pos, head, member) \ | ||
168 | for (({barrier();}), \ | ||
169 | pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \ | ||
170 | (!is_a_nulls(pos)) && \ | ||
171 | ({ tpos = hlist_nulls_entry(pos, typeof(*tpos), member); \ | ||
172 | pos = rcu_dereference_raw(hlist_nulls_next_rcu(pos)); 1; });) | ||
159 | #endif | 173 | #endif |
160 | #endif | 174 | #endif |
diff --git a/include/net/inet_common.h b/include/net/inet_common.h index b7952d55b9c0..f39ae697347f 100644 --- a/include/net/inet_common.h +++ b/include/net/inet_common.h | |||
@@ -20,7 +20,8 @@ int __inet_stream_connect(struct socket *sock, struct sockaddr *uaddr, | |||
20 | int addr_len, int flags, int is_sendmsg); | 20 | int addr_len, int flags, int is_sendmsg); |
21 | int inet_dgram_connect(struct socket *sock, struct sockaddr *uaddr, | 21 | int inet_dgram_connect(struct socket *sock, struct sockaddr *uaddr, |
22 | int addr_len, int flags); | 22 | int addr_len, int flags); |
23 | int inet_accept(struct socket *sock, struct socket *newsock, int flags); | 23 | int inet_accept(struct socket *sock, struct socket *newsock, int flags, |
24 | bool kern); | ||
24 | int inet_sendmsg(struct socket *sock, struct msghdr *msg, size_t size); | 25 | int inet_sendmsg(struct socket *sock, struct msghdr *msg, size_t size); |
25 | ssize_t inet_sendpage(struct socket *sock, struct page *page, int offset, | 26 | ssize_t inet_sendpage(struct socket *sock, struct page *page, int offset, |
26 | size_t size, int flags); | 27 | size_t size, int flags); |
diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h index 826f198374f8..c7a577976bec 100644 --- a/include/net/inet_connection_sock.h +++ b/include/net/inet_connection_sock.h | |||
@@ -258,7 +258,7 @@ inet_csk_rto_backoff(const struct inet_connection_sock *icsk, | |||
258 | return (unsigned long)min_t(u64, when, max_when); | 258 | return (unsigned long)min_t(u64, when, max_when); |
259 | } | 259 | } |
260 | 260 | ||
261 | struct sock *inet_csk_accept(struct sock *sk, int flags, int *err); | 261 | struct sock *inet_csk_accept(struct sock *sk, int flags, int *err, bool kern); |
262 | 262 | ||
263 | int inet_csk_get_port(struct sock *sk, unsigned short snum); | 263 | int inet_csk_get_port(struct sock *sk, unsigned short snum); |
264 | 264 | ||
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index a244db5e5ff7..07a0b128625a 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -476,7 +476,8 @@ struct sctp_pf { | |||
476 | int (*send_verify) (struct sctp_sock *, union sctp_addr *); | 476 | int (*send_verify) (struct sctp_sock *, union sctp_addr *); |
477 | int (*supported_addrs)(const struct sctp_sock *, __be16 *); | 477 | int (*supported_addrs)(const struct sctp_sock *, __be16 *); |
478 | struct sock *(*create_accept_sk) (struct sock *sk, | 478 | struct sock *(*create_accept_sk) (struct sock *sk, |
479 | struct sctp_association *asoc); | 479 | struct sctp_association *asoc, |
480 | bool kern); | ||
480 | int (*addr_to_user)(struct sctp_sock *sk, union sctp_addr *addr); | 481 | int (*addr_to_user)(struct sctp_sock *sk, union sctp_addr *addr); |
481 | void (*to_sk_saddr)(union sctp_addr *, struct sock *sk); | 482 | void (*to_sk_saddr)(union sctp_addr *, struct sock *sk); |
482 | void (*to_sk_daddr)(union sctp_addr *, struct sock *sk); | 483 | void (*to_sk_daddr)(union sctp_addr *, struct sock *sk); |
diff --git a/include/net/sock.h b/include/net/sock.h index 5e5997654db6..03252d53975d 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -236,6 +236,7 @@ struct sock_common { | |||
236 | * @sk_shutdown: mask of %SEND_SHUTDOWN and/or %RCV_SHUTDOWN | 236 | * @sk_shutdown: mask of %SEND_SHUTDOWN and/or %RCV_SHUTDOWN |
237 | * @sk_userlocks: %SO_SNDBUF and %SO_RCVBUF settings | 237 | * @sk_userlocks: %SO_SNDBUF and %SO_RCVBUF settings |
238 | * @sk_lock: synchronizer | 238 | * @sk_lock: synchronizer |
239 | * @sk_kern_sock: True if sock is using kernel lock classes | ||
239 | * @sk_rcvbuf: size of receive buffer in bytes | 240 | * @sk_rcvbuf: size of receive buffer in bytes |
240 | * @sk_wq: sock wait queue and async head | 241 | * @sk_wq: sock wait queue and async head |
241 | * @sk_rx_dst: receive input route used by early demux | 242 | * @sk_rx_dst: receive input route used by early demux |
@@ -430,7 +431,8 @@ struct sock { | |||
430 | #endif | 431 | #endif |
431 | 432 | ||
432 | kmemcheck_bitfield_begin(flags); | 433 | kmemcheck_bitfield_begin(flags); |
433 | unsigned int sk_padding : 2, | 434 | unsigned int sk_padding : 1, |
435 | sk_kern_sock : 1, | ||
434 | sk_no_check_tx : 1, | 436 | sk_no_check_tx : 1, |
435 | sk_no_check_rx : 1, | 437 | sk_no_check_rx : 1, |
436 | sk_userlocks : 4, | 438 | sk_userlocks : 4, |
@@ -1015,7 +1017,8 @@ struct proto { | |||
1015 | int addr_len); | 1017 | int addr_len); |
1016 | int (*disconnect)(struct sock *sk, int flags); | 1018 | int (*disconnect)(struct sock *sk, int flags); |
1017 | 1019 | ||
1018 | struct sock * (*accept)(struct sock *sk, int flags, int *err); | 1020 | struct sock * (*accept)(struct sock *sk, int flags, int *err, |
1021 | bool kern); | ||
1019 | 1022 | ||
1020 | int (*ioctl)(struct sock *sk, int cmd, | 1023 | int (*ioctl)(struct sock *sk, int cmd, |
1021 | unsigned long arg); | 1024 | unsigned long arg); |
@@ -1573,7 +1576,7 @@ int sock_cmsg_send(struct sock *sk, struct msghdr *msg, | |||
1573 | int sock_no_bind(struct socket *, struct sockaddr *, int); | 1576 | int sock_no_bind(struct socket *, struct sockaddr *, int); |
1574 | int sock_no_connect(struct socket *, struct sockaddr *, int, int); | 1577 | int sock_no_connect(struct socket *, struct sockaddr *, int, int); |
1575 | int sock_no_socketpair(struct socket *, struct socket *); | 1578 | int sock_no_socketpair(struct socket *, struct socket *); |
1576 | int sock_no_accept(struct socket *, struct socket *, int); | 1579 | int sock_no_accept(struct socket *, struct socket *, int, bool); |
1577 | int sock_no_getname(struct socket *, struct sockaddr *, int *, int); | 1580 | int sock_no_getname(struct socket *, struct sockaddr *, int *, int); |
1578 | unsigned int sock_no_poll(struct file *, struct socket *, | 1581 | unsigned int sock_no_poll(struct file *, struct socket *, |
1579 | struct poll_table_struct *); | 1582 | struct poll_table_struct *); |
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h index b0e275de6dec..583875ea136a 100644 --- a/include/scsi/libiscsi.h +++ b/include/scsi/libiscsi.h | |||
@@ -196,6 +196,7 @@ struct iscsi_conn { | |||
196 | struct iscsi_task *task; /* xmit task in progress */ | 196 | struct iscsi_task *task; /* xmit task in progress */ |
197 | 197 | ||
198 | /* xmit */ | 198 | /* xmit */ |
199 | spinlock_t taskqueuelock; /* protects the next three lists */ | ||
199 | struct list_head mgmtqueue; /* mgmt (control) xmit queue */ | 200 | struct list_head mgmtqueue; /* mgmt (control) xmit queue */ |
200 | struct list_head cmdqueue; /* data-path cmd queue */ | 201 | struct list_head cmdqueue; /* data-path cmd queue */ |
201 | struct list_head requeue; /* tasks needing another run */ | 202 | struct list_head requeue; /* tasks needing another run */ |
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index 6f22b39f1b0c..080c7ce9bae8 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h | |||
@@ -472,6 +472,10 @@ static inline int scsi_device_created(struct scsi_device *sdev) | |||
472 | sdev->sdev_state == SDEV_CREATED_BLOCK; | 472 | sdev->sdev_state == SDEV_CREATED_BLOCK; |
473 | } | 473 | } |
474 | 474 | ||
475 | int scsi_internal_device_block(struct scsi_device *sdev, bool wait); | ||
476 | int scsi_internal_device_unblock(struct scsi_device *sdev, | ||
477 | enum scsi_device_state new_state); | ||
478 | |||
475 | /* accessor functions for the SCSI parameters */ | 479 | /* accessor functions for the SCSI parameters */ |
476 | static inline int scsi_device_sync(struct scsi_device *sdev) | 480 | static inline int scsi_device_sync(struct scsi_device *sdev) |
477 | { | 481 | { |
diff --git a/include/target/target_core_backend.h b/include/target/target_core_backend.h index b54b98dc2d4a..1b0f447ce850 100644 --- a/include/target/target_core_backend.h +++ b/include/target/target_core_backend.h | |||
@@ -4,7 +4,12 @@ | |||
4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
5 | #include <target/target_core_base.h> | 5 | #include <target/target_core_base.h> |
6 | 6 | ||
7 | #define TRANSPORT_FLAG_PASSTHROUGH 1 | 7 | #define TRANSPORT_FLAG_PASSTHROUGH 0x1 |
8 | /* | ||
9 | * ALUA commands, state checks and setup operations are handled by the | ||
10 | * backend module. | ||
11 | */ | ||
12 | #define TRANSPORT_FLAG_PASSTHROUGH_ALUA 0x2 | ||
8 | 13 | ||
9 | struct request_queue; | 14 | struct request_queue; |
10 | struct scatterlist; | 15 | struct scatterlist; |
diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h index 37c274e61acc..4b784b6e21c0 100644 --- a/include/target/target_core_base.h +++ b/include/target/target_core_base.h | |||
@@ -299,7 +299,7 @@ struct t10_alua_tg_pt_gp { | |||
299 | struct list_head tg_pt_gp_lun_list; | 299 | struct list_head tg_pt_gp_lun_list; |
300 | struct se_lun *tg_pt_gp_alua_lun; | 300 | struct se_lun *tg_pt_gp_alua_lun; |
301 | struct se_node_acl *tg_pt_gp_alua_nacl; | 301 | struct se_node_acl *tg_pt_gp_alua_nacl; |
302 | struct delayed_work tg_pt_gp_transition_work; | 302 | struct work_struct tg_pt_gp_transition_work; |
303 | struct completion *tg_pt_gp_transition_complete; | 303 | struct completion *tg_pt_gp_transition_complete; |
304 | }; | 304 | }; |
305 | 305 | ||
diff --git a/include/uapi/drm/omap_drm.h b/include/uapi/drm/omap_drm.h index 407cb55df6ac..7fb97863c945 100644 --- a/include/uapi/drm/omap_drm.h +++ b/include/uapi/drm/omap_drm.h | |||
@@ -33,8 +33,8 @@ extern "C" { | |||
33 | #define OMAP_PARAM_CHIPSET_ID 1 /* ie. 0x3430, 0x4430, etc */ | 33 | #define OMAP_PARAM_CHIPSET_ID 1 /* ie. 0x3430, 0x4430, etc */ |
34 | 34 | ||
35 | struct drm_omap_param { | 35 | struct drm_omap_param { |
36 | uint64_t param; /* in */ | 36 | __u64 param; /* in */ |
37 | uint64_t value; /* in (set_param), out (get_param) */ | 37 | __u64 value; /* in (set_param), out (get_param) */ |
38 | }; | 38 | }; |
39 | 39 | ||
40 | #define OMAP_BO_SCANOUT 0x00000001 /* scanout capable (phys contiguous) */ | 40 | #define OMAP_BO_SCANOUT 0x00000001 /* scanout capable (phys contiguous) */ |
@@ -53,18 +53,18 @@ struct drm_omap_param { | |||
53 | #define OMAP_BO_TILED (OMAP_BO_TILED_8 | OMAP_BO_TILED_16 | OMAP_BO_TILED_32) | 53 | #define OMAP_BO_TILED (OMAP_BO_TILED_8 | OMAP_BO_TILED_16 | OMAP_BO_TILED_32) |
54 | 54 | ||
55 | union omap_gem_size { | 55 | union omap_gem_size { |
56 | uint32_t bytes; /* (for non-tiled formats) */ | 56 | __u32 bytes; /* (for non-tiled formats) */ |
57 | struct { | 57 | struct { |
58 | uint16_t width; | 58 | __u16 width; |
59 | uint16_t height; | 59 | __u16 height; |
60 | } tiled; /* (for tiled formats) */ | 60 | } tiled; /* (for tiled formats) */ |
61 | }; | 61 | }; |
62 | 62 | ||
63 | struct drm_omap_gem_new { | 63 | struct drm_omap_gem_new { |
64 | union omap_gem_size size; /* in */ | 64 | union omap_gem_size size; /* in */ |
65 | uint32_t flags; /* in */ | 65 | __u32 flags; /* in */ |
66 | uint32_t handle; /* out */ | 66 | __u32 handle; /* out */ |
67 | uint32_t __pad; | 67 | __u32 __pad; |
68 | }; | 68 | }; |
69 | 69 | ||
70 | /* mask of operations: */ | 70 | /* mask of operations: */ |
@@ -74,33 +74,33 @@ enum omap_gem_op { | |||
74 | }; | 74 | }; |
75 | 75 | ||
76 | struct drm_omap_gem_cpu_prep { | 76 | struct drm_omap_gem_cpu_prep { |
77 | uint32_t handle; /* buffer handle (in) */ | 77 | __u32 handle; /* buffer handle (in) */ |
78 | uint32_t op; /* mask of omap_gem_op (in) */ | 78 | __u32 op; /* mask of omap_gem_op (in) */ |
79 | }; | 79 | }; |
80 | 80 | ||
81 | struct drm_omap_gem_cpu_fini { | 81 | struct drm_omap_gem_cpu_fini { |
82 | uint32_t handle; /* buffer handle (in) */ | 82 | __u32 handle; /* buffer handle (in) */ |
83 | uint32_t op; /* mask of omap_gem_op (in) */ | 83 | __u32 op; /* mask of omap_gem_op (in) */ |
84 | /* TODO maybe here we pass down info about what regions are touched | 84 | /* TODO maybe here we pass down info about what regions are touched |
85 | * by sw so we can be clever about cache ops? For now a placeholder, | 85 | * by sw so we can be clever about cache ops? For now a placeholder, |
86 | * set to zero and we just do full buffer flush.. | 86 | * set to zero and we just do full buffer flush.. |
87 | */ | 87 | */ |
88 | uint32_t nregions; | 88 | __u32 nregions; |
89 | uint32_t __pad; | 89 | __u32 __pad; |
90 | }; | 90 | }; |
91 | 91 | ||
92 | struct drm_omap_gem_info { | 92 | struct drm_omap_gem_info { |
93 | uint32_t handle; /* buffer handle (in) */ | 93 | __u32 handle; /* buffer handle (in) */ |
94 | uint32_t pad; | 94 | __u32 pad; |
95 | uint64_t offset; /* mmap offset (out) */ | 95 | __u64 offset; /* mmap offset (out) */ |
96 | /* note: in case of tiled buffers, the user virtual size can be | 96 | /* note: in case of tiled buffers, the user virtual size can be |
97 | * different from the physical size (ie. how many pages are needed | 97 | * different from the physical size (ie. how many pages are needed |
98 | * to back the object) which is returned in DRM_IOCTL_GEM_OPEN.. | 98 | * to back the object) which is returned in DRM_IOCTL_GEM_OPEN.. |
99 | * This size here is the one that should be used if you want to | 99 | * This size here is the one that should be used if you want to |
100 | * mmap() the buffer: | 100 | * mmap() the buffer: |
101 | */ | 101 | */ |
102 | uint32_t size; /* virtual size for mmap'ing (out) */ | 102 | __u32 size; /* virtual size for mmap'ing (out) */ |
103 | uint32_t __pad; | 103 | __u32 __pad; |
104 | }; | 104 | }; |
105 | 105 | ||
106 | #define DRM_OMAP_GET_PARAM 0x00 | 106 | #define DRM_OMAP_GET_PARAM 0x00 |
diff --git a/include/uapi/linux/packet_diag.h b/include/uapi/linux/packet_diag.h index d08c63f3dd6f..0c5d5dd61b6a 100644 --- a/include/uapi/linux/packet_diag.h +++ b/include/uapi/linux/packet_diag.h | |||
@@ -64,7 +64,7 @@ struct packet_diag_mclist { | |||
64 | __u32 pdmc_count; | 64 | __u32 pdmc_count; |
65 | __u16 pdmc_type; | 65 | __u16 pdmc_type; |
66 | __u16 pdmc_alen; | 66 | __u16 pdmc_alen; |
67 | __u8 pdmc_addr[MAX_ADDR_LEN]; | 67 | __u8 pdmc_addr[32]; /* MAX_ADDR_LEN */ |
68 | }; | 68 | }; |
69 | 69 | ||
70 | struct packet_diag_ring { | 70 | struct packet_diag_ring { |