History

Merge 5.6-rc7 into char-misc-next

We need the char/misc driver fixes in here as well.

Greg Kroah-Hartman committed 6 years ago

Commit baca54d2 parents 217fb36 16fbf79414 files · +3487 −1503Browse files

Showing the changes to include/linux (17 of 414 files). Show all

Unified · Split

17 files
  1. include/linux/cgroup.h +1 −0
  2. include/linux/dmar.h +9 −5
  3. include/linux/file.h +1 −0
  4. include/linux/fs.h +1 −0
  5. include/linux/futex.h +10 −7
  6. include/linux/genhd.h +1 −12
  7. include/linux/inet_diag.h +12 −6
  8. include/linux/intel-iommu.h +2 −0
  9. include/linux/mmc/host.h +1 −0
  10. include/linux/of_clk.h +4 −4
  11. include/linux/page-flags.h +1 −1
  12. include/linux/phy.h +3 −0
  13. include/linux/platform_device.h +1 −1
  14. include/linux/rhashtable.h +1 −1
  15. include/linux/socket.h +2 −1
  16. include/linux/vmalloc.h +3 −2
  17. include/linux/workqueue.h +16 −0
include/linux/cgroup.h+1−0
@@ -62,6 +62,7 @@ struct css_task_iter { · 61 unmodified lines
6262 struct list_head *mg_tasks_head;
6363 struct list_head *dying_tasks_head;
6464
65+ struct list_head *cur_tasks_head;
6566 struct css_set *cur_cset;
6667 struct css_set *cur_dcset;
6768 struct task_struct *cur_task;
include/linux/dmar.h+9−5
@@ -69,19 +69,23 @@ struct dmar_pci_notify_info { · 68 unmodified lines
6969 extern struct rw_semaphore dmar_global_lock;
7070 extern struct list_head dmar_drhd_units;
7171
72−#define for_each_drhd_unit(drhd) \
73− list_for_each_entry_rcu(drhd, &dmar_drhd_units, list)
72+#define for_each_drhd_unit(drhd) \
73+ list_for_each_entry_rcu(drhd, &dmar_drhd_units, list, \
74+ dmar_rcu_check())
7475
7576 #define for_each_active_drhd_unit(drhd) \
76− list_for_each_entry_rcu(drhd, &dmar_drhd_units, list) \
77+ list_for_each_entry_rcu(drhd, &dmar_drhd_units, list, \
78+ dmar_rcu_check()) \
7779 if (drhd->ignored) {} else
7880
7981 #define for_each_active_iommu(i, drhd) \
80− list_for_each_entry_rcu(drhd, &dmar_drhd_units, list) \
82+ list_for_each_entry_rcu(drhd, &dmar_drhd_units, list, \
83+ dmar_rcu_check()) \
8184 if (i=drhd->iommu, drhd->ignored) {} else
8285
8386 #define for_each_iommu(i, drhd) \
84− list_for_each_entry_rcu(drhd, &dmar_drhd_units, list) \
87+ list_for_each_entry_rcu(drhd, &dmar_drhd_units, list, \
88+ dmar_rcu_check()) \
8589 if (i=drhd->iommu, 0) {} else
8690
8791 static inline bool dmar_rcu_check(void)
include/linux/file.h+1−0
@@ -85,6 +85,7 @@ extern int f_dupfd(unsigned int from, struct file *file, unsigned flags); · 84 unmodified lines
8585 extern int replace_fd(unsigned fd, struct file *file, unsigned flags);
8686 extern void set_close_on_exec(unsigned int fd, int flag);
8787 extern bool get_close_on_exec(unsigned int fd);
88+extern int __get_unused_fd_flags(unsigned flags, unsigned long nofile);
8889 extern int get_unused_fd_flags(unsigned flags);
8990 extern void put_unused_fd(unsigned int fd);
9091
include/linux/fs.h+1−0
@@ -698,6 +698,7 @@ struct inode { · 697 unmodified lines
698698 struct rcu_head i_rcu;
699699 };
700700 atomic64_t i_version;
701+ atomic64_t i_sequence; /* see futex */
701702 atomic_t i_count;
702703 atomic_t i_dio_count;
703704 atomic_t i_writecount;
include/linux/futex.h+10−7
@@ -31,23 +31,26 @@ struct task_struct; · 30 unmodified lines
3131
3232 union futex_key {
3333 struct {
34+ u64 i_seq;
3435 unsigned long pgoff;
35− struct inode *inode;
36− int offset;
36+ unsigned int offset;
3737 } shared;
3838 struct {
39+ union {
40+ struct mm_struct *mm;
41+ u64 __tmp;
42+ };
3943 unsigned long address;
40− struct mm_struct *mm;
41− int offset;
44+ unsigned int offset;
4245 } private;
4346 struct {
47+ u64 ptr;
4448 unsigned long word;
45− void *ptr;
46− int offset;
49+ unsigned int offset;
4750 } both;
4851 };
4952
50−#define FUTEX_KEY_INIT (union futex_key) { .both = { .ptr = NULL } }
53+#define FUTEX_KEY_INIT (union futex_key) { .both = { .ptr = 0ULL } }
5154
5255 #ifdef CONFIG_FUTEX
5356 enum {
include/linux/genhd.h+1−12
@@ -245,18 +245,6 @@ static inline bool disk_part_scan_enabled(struct gendisk *disk) · 244 unmodified lines
245245 !(disk->flags & GENHD_FL_NO_PART_SCAN);
246246 }
247247
248−static inline bool disk_has_partitions(struct gendisk *disk)
249−{
250− bool ret = false;
251−
252− rcu_read_lock();
253− if (rcu_dereference(disk->part_tbl)->len > 1)
254− ret = true;
255− rcu_read_unlock();
256−
257− return ret;
258−}
259−
260248 static inline dev_t disk_devt(struct gendisk *disk)
261249 {
262250 return MKDEV(disk->major, disk->first_minor);
@@ -298,6 +286,7 @@ extern void disk_part_iter_exit(struct disk_part_iter *piter); · 35 unmodified lines
298286
299287 extern struct hd_struct *disk_map_sector_rcu(struct gendisk *disk,
300288 sector_t sector);
289+bool disk_has_partitions(struct gendisk *disk);
301290
302291 /*
303292 * Macros to operate on percpu disk statistics:
include/linux/inet_diag.h+12−6
@@ -2,15 +2,10 @@ · 1 unmodified line
22 #ifndef _INET_DIAG_H_
33 #define _INET_DIAG_H_ 1
44
5+#include <net/netlink.h>
56 #include <uapi/linux/inet_diag.h>
67
7−struct net;
8−struct sock;
98 struct inet_hashinfo;
10−struct nlattr;
11−struct nlmsghdr;
12−struct sk_buff;
13−struct netlink_callback;
149
1510 struct inet_diag_handler {
1611 void (*dump)(struct sk_buff *skb,
@@ -62,6 +57,17 @@ int inet_diag_bc_sk(const struct nlattr *_bc, struct sock *sk); · 45 unmodified lines
6257
6358 void inet_diag_msg_common_fill(struct inet_diag_msg *r, struct sock *sk);
6459
60+static inline size_t inet_diag_msg_attrs_size(void)
61+{
62+ return nla_total_size(1) /* INET_DIAG_SHUTDOWN */
63+ + nla_total_size(1) /* INET_DIAG_TOS */
64+#if IS_ENABLED(CONFIG_IPV6)
65+ + nla_total_size(1) /* INET_DIAG_TCLASS */
66+ + nla_total_size(1) /* INET_DIAG_SKV6ONLY */
67+#endif
68+ + nla_total_size(4) /* INET_DIAG_MARK */
69+ + nla_total_size(4); /* INET_DIAG_CLASS_ID */
70+}
6571 int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb,
6672 struct inet_diag_msg *r, int ext,
6773 struct user_namespace *user_ns, bool net_admin);
include/linux/intel-iommu.h+2−0
@@ -123,6 +123,8 @@ · 122 unmodified lines
123123
124124 #define dmar_readq(a) readq(a)
125125 #define dmar_writeq(a,v) writeq(v,a)
126+#define dmar_readl(a) readl(a)
127+#define dmar_writel(a, v) writel(v, a)
126128
127129 #define DMAR_VER_MAJOR(v) (((v) & 0xf0) >> 4)
128130 #define DMAR_VER_MINOR(v) ((v) & 0x0f)
include/linux/mmc/host.h+1−0
@@ -333,6 +333,7 @@ struct mmc_host { · 332 unmodified lines
333333 MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR104 | \
334334 MMC_CAP_UHS_DDR50)
335335 #define MMC_CAP_SYNC_RUNTIME_PM (1 << 21) /* Synced runtime PM suspends. */
336+#define MMC_CAP_NEED_RSP_BUSY (1 << 22) /* Commands with R1B can't use R1. */
336337 #define MMC_CAP_DRIVER_TYPE_A (1 << 23) /* Host supports Driver Type A */
337338 #define MMC_CAP_DRIVER_TYPE_C (1 << 24) /* Host supports Driver Type C */
338339 #define MMC_CAP_DRIVER_TYPE_D (1 << 25) /* Host supports Driver Type D */
include/linux/of_clk.h+4−4
@@ -11,17 +11,17 @@ struct of_device_id; · 10 unmodified lines
1111
1212 #if defined(CONFIG_COMMON_CLK) && defined(CONFIG_OF)
1313
14−unsigned int of_clk_get_parent_count(struct device_node *np);
15−const char *of_clk_get_parent_name(struct device_node *np, int index);
14+unsigned int of_clk_get_parent_count(const struct device_node *np);
15+const char *of_clk_get_parent_name(const struct device_node *np, int index);
1616 void of_clk_init(const struct of_device_id *matches);
1717
1818 #else /* !CONFIG_COMMON_CLK || !CONFIG_OF */
1919
20−static inline unsigned int of_clk_get_parent_count(struct device_node *np)
20+static inline unsigned int of_clk_get_parent_count(const struct device_node *np)
2121 {
2222 return 0;
2323 }
24−static inline const char *of_clk_get_parent_name(struct device_node *np,
24+static inline const char *of_clk_get_parent_name(const struct device_node *np,
2525 int index)
2626 {
2727 return NULL;
include/linux/page-flags.h+1−1
@@ -311,7 +311,7 @@ static inline int TestClearPage##uname(struct page *page) { return 0; } · 310 unmodified lines
311311
312312 __PAGEFLAG(Locked, locked, PF_NO_TAIL)
313313 PAGEFLAG(Waiters, waiters, PF_ONLY_HEAD) __CLEARPAGEFLAG(Waiters, waiters, PF_ONLY_HEAD)
314−PAGEFLAG(Error, error, PF_NO_COMPOUND) TESTCLEARFLAG(Error, error, PF_NO_COMPOUND)
314+PAGEFLAG(Error, error, PF_NO_TAIL) TESTCLEARFLAG(Error, error, PF_NO_TAIL)
315315 PAGEFLAG(Referenced, referenced, PF_HEAD)
316316 TESTCLEARFLAG(Referenced, referenced, PF_HEAD)
317317 __SETPAGEFLAG(Referenced, referenced, PF_HEAD)
include/linux/phy.h+3−0
@@ -357,6 +357,7 @@ struct macsec_ops; · 356 unmodified lines
357357 * is_gigabit_capable: Set to true if PHY supports 1000Mbps
358358 * has_fixups: Set to true if this phy has fixups/quirks.
359359 * suspended: Set to true if this phy has been suspended successfully.
360+ * suspended_by_mdio_bus: Set to true if this phy was suspended by MDIO bus.
360361 * sysfs_links: Internal boolean tracking sysfs symbolic links setup/removal.
361362 * loopback_enabled: Set true if this phy has been loopbacked successfully.
362363 * state: state of the PHY for management purposes
@@ -396,6 +397,7 @@ struct phy_device { · 33 unmodified lines
396397 unsigned is_gigabit_capable:1;
397398 unsigned has_fixups:1;
398399 unsigned suspended:1;
400+ unsigned suspended_by_mdio_bus:1;
399401 unsigned sysfs_links:1;
400402 unsigned loopback_enabled:1;
401403
@@ -557,6 +559,7 @@ struct phy_driver { · 155 unmodified lines
557559 /*
558560 * Checks if the PHY generated an interrupt.
559561 * For multi-PHY devices with shared PHY interrupt pin
562+ * Set interrupt bits have to be cleared.
560563 */
561564 int (*did_interrupt)(struct phy_device *phydev);
562565
include/linux/platform_device.h+1−1
@@ -24,7 +24,7 @@ struct platform_device { · 23 unmodified lines
2424 int id;
2525 bool id_auto;
2626 struct device dev;
27− u64 dma_mask;
27+ u64 platform_dma_mask;
2828 u32 num_resources;
2929 struct resource *resource;
3030
include/linux/rhashtable.h+1−1
@@ -972,9 +972,9 @@ static inline int rhashtable_lookup_insert_key( · 971 unmodified lines
972972 /**
973973 * rhashtable_lookup_get_insert_key - lookup and insert object into hash table
974974 * @ht: hash table
975+ * @key: key
975976 * @obj: pointer to hash head inside object
976977 * @params: hash table parameters
977− * @data: pointer to element data already in hashes
978978 *
979979 * Just like rhashtable_lookup_insert_key(), but this function returns the
980980 * object if it exists, NULL if it does not and the insertion was successful,
include/linux/socket.h+2−1
@@ -401,7 +401,8 @@ extern int __sys_sendto(int fd, void __user *buff, size_t len, · 400 unmodified lines
401401 int addr_len);
402402 extern int __sys_accept4_file(struct file *file, unsigned file_flags,
403403 struct sockaddr __user *upeer_sockaddr,
404− int __user *upeer_addrlen, int flags);
404+ int __user *upeer_addrlen, int flags,
405+ unsigned long nofile);
405406 extern int __sys_accept4(int fd, struct sockaddr __user *upeer_sockaddr,
406407 int __user *upeer_addrlen, int flags);
407408 extern int __sys_socket(int family, int type, int protocol);
include/linux/vmalloc.h+3−2
@@ -141,8 +141,9 @@ extern int remap_vmalloc_range_partial(struct vm_area_struct *vma, · 140 unmodified lines
141141
142142 extern int remap_vmalloc_range(struct vm_area_struct *vma, void *addr,
143143 unsigned long pgoff);
144−void vmalloc_sync_all(void);
145−
144+void vmalloc_sync_mappings(void);
145+void vmalloc_sync_unmappings(void);
146+
146147 /*
147148 * Lowlevel-APIs (not for driver use!)
148149 */
include/linux/workqueue.h+16−0
@@ -487,6 +487,19 @@ extern void wq_worker_comm(char *buf, size_t size, struct task_struct *task); · 486 unmodified lines
487487 *
488488 * We queue the work to the CPU on which it was submitted, but if the CPU dies
489489 * it can be processed by another CPU.
490+ *
491+ * Memory-ordering properties: If it returns %true, guarantees that all stores
492+ * preceding the call to queue_work() in the program order will be visible from
493+ * the CPU which will execute @work by the time such work executes, e.g.,
494+ *
495+ * { x is initially 0 }
496+ *
497+ * CPU0 CPU1
498+ *
499+ * WRITE_ONCE(x, 1); [ @work is being executed ]
500+ * r0 = queue_work(wq, work); r1 = READ_ONCE(x);
501+ *
502+ * Forbids: r0 == true && r1 == 0
490503 */
491504 static inline bool queue_work(struct workqueue_struct *wq,
492505 struct work_struct *work)
@@ -546,6 +559,9 @@ static inline bool schedule_work_on(int cpu, struct work_struct *work) · 53 unmodified lines
546559 * This puts a job in the kernel-global workqueue if it was not already
547560 * queued and leaves it in the same position on the kernel-global
548561 * workqueue otherwise.
562+ *
563+ * Shares the same memory-ordering properties of queue_work(), cf. the
564+ * DocBook header of queue_work().
549565 */
550566 static inline bool schedule_work(struct work_struct *work)
551567 {