diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/atomic.h | 34 | ||||
| -rw-r--r-- | include/linux/brcmphy.h | 2 | ||||
| -rw-r--r-- | include/linux/configfs.h | 4 | ||||
| -rw-r--r-- | include/linux/filter.h | 4 | ||||
| -rw-r--r-- | include/linux/huge_mm.h | 2 | ||||
| -rw-r--r-- | include/linux/netfilter/ipset/ip_set.h | 4 | ||||
| -rw-r--r-- | include/linux/pmem.h | 22 | ||||
| -rw-r--r-- | include/linux/sched.h | 4 | ||||
| -rw-r--r-- | include/linux/stmmac.h | 1 |
9 files changed, 48 insertions, 29 deletions
diff --git a/include/linux/atomic.h b/include/linux/atomic.h index df4f369254c0..506c3531832e 100644 --- a/include/linux/atomic.h +++ b/include/linux/atomic.h | |||
| @@ -559,25 +559,25 @@ static inline int atomic_dec_if_positive(atomic_t *v) | |||
| 559 | #endif | 559 | #endif |
| 560 | 560 | ||
| 561 | /** | 561 | /** |
| 562 | * fetch_or - perform *ptr |= mask and return old value of *ptr | 562 | * atomic_fetch_or - perform *p |= mask and return old value of *p |
| 563 | * @ptr: pointer to value | 563 | * @p: pointer to atomic_t |
| 564 | * @mask: mask to OR on the value | 564 | * @mask: mask to OR on the atomic_t |
| 565 | * | ||
| 566 | * cmpxchg based fetch_or, macro so it works for different integer types | ||
| 567 | */ | 565 | */ |
| 568 | #ifndef fetch_or | 566 | #ifndef atomic_fetch_or |
| 569 | #define fetch_or(ptr, mask) \ | 567 | static inline int atomic_fetch_or(atomic_t *p, int mask) |
| 570 | ({ typeof(*(ptr)) __old, __val = *(ptr); \ | 568 | { |
| 571 | for (;;) { \ | 569 | int old, val = atomic_read(p); |
| 572 | __old = cmpxchg((ptr), __val, __val | (mask)); \ | 570 | |
| 573 | if (__old == __val) \ | 571 | for (;;) { |
| 574 | break; \ | 572 | old = atomic_cmpxchg(p, val, val | mask); |
| 575 | __val = __old; \ | 573 | if (old == val) |
| 576 | } \ | 574 | break; |
| 577 | __old; \ | 575 | val = old; |
| 578 | }) | 576 | } |
| 579 | #endif | ||
| 580 | 577 | ||
| 578 | return old; | ||
| 579 | } | ||
| 580 | #endif | ||
| 581 | 581 | ||
| 582 | #ifdef CONFIG_GENERIC_ATOMIC64 | 582 | #ifdef CONFIG_GENERIC_ATOMIC64 |
| 583 | #include <asm-generic/atomic64.h> | 583 | #include <asm-generic/atomic64.h> |
diff --git a/include/linux/brcmphy.h b/include/linux/brcmphy.h index f0ba9c2ec639..e3354b74286c 100644 --- a/include/linux/brcmphy.h +++ b/include/linux/brcmphy.h | |||
| @@ -24,6 +24,8 @@ | |||
| 24 | #define PHY_ID_BCM7250 0xae025280 | 24 | #define PHY_ID_BCM7250 0xae025280 |
| 25 | #define PHY_ID_BCM7364 0xae025260 | 25 | #define PHY_ID_BCM7364 0xae025260 |
| 26 | #define PHY_ID_BCM7366 0x600d8490 | 26 | #define PHY_ID_BCM7366 0x600d8490 |
| 27 | #define PHY_ID_BCM7346 0x600d8650 | ||
| 28 | #define PHY_ID_BCM7362 0x600d84b0 | ||
| 27 | #define PHY_ID_BCM7425 0x600d86b0 | 29 | #define PHY_ID_BCM7425 0x600d86b0 |
| 28 | #define PHY_ID_BCM7429 0x600d8730 | 30 | #define PHY_ID_BCM7429 0x600d8730 |
| 29 | #define PHY_ID_BCM7435 0x600d8750 | 31 | #define PHY_ID_BCM7435 0x600d8750 |
diff --git a/include/linux/configfs.h b/include/linux/configfs.h index 485fe5519448..d9d6a9d77489 100644 --- a/include/linux/configfs.h +++ b/include/linux/configfs.h | |||
| @@ -188,7 +188,7 @@ static struct configfs_bin_attribute _pfx##attr_##_name = { \ | |||
| 188 | } | 188 | } |
| 189 | 189 | ||
| 190 | #define CONFIGFS_BIN_ATTR_RO(_pfx, _name, _priv, _maxsz) \ | 190 | #define CONFIGFS_BIN_ATTR_RO(_pfx, _name, _priv, _maxsz) \ |
| 191 | static struct configfs_attribute _pfx##attr_##_name = { \ | 191 | static struct configfs_bin_attribute _pfx##attr_##_name = { \ |
| 192 | .cb_attr = { \ | 192 | .cb_attr = { \ |
| 193 | .ca_name = __stringify(_name), \ | 193 | .ca_name = __stringify(_name), \ |
| 194 | .ca_mode = S_IRUGO, \ | 194 | .ca_mode = S_IRUGO, \ |
| @@ -200,7 +200,7 @@ static struct configfs_attribute _pfx##attr_##_name = { \ | |||
| 200 | } | 200 | } |
| 201 | 201 | ||
| 202 | #define CONFIGFS_BIN_ATTR_WO(_pfx, _name, _priv, _maxsz) \ | 202 | #define CONFIGFS_BIN_ATTR_WO(_pfx, _name, _priv, _maxsz) \ |
| 203 | static struct configfs_attribute _pfx##attr_##_name = { \ | 203 | static struct configfs_bin_attribute _pfx##attr_##_name = { \ |
| 204 | .cb_attr = { \ | 204 | .cb_attr = { \ |
| 205 | .ca_name = __stringify(_name), \ | 205 | .ca_name = __stringify(_name), \ |
| 206 | .ca_mode = S_IWUSR, \ | 206 | .ca_mode = S_IWUSR, \ |
diff --git a/include/linux/filter.h b/include/linux/filter.h index 43aa1f8855c7..a51a5361695f 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h | |||
| @@ -465,10 +465,14 @@ int bpf_prog_create_from_user(struct bpf_prog **pfp, struct sock_fprog *fprog, | |||
| 465 | void bpf_prog_destroy(struct bpf_prog *fp); | 465 | void bpf_prog_destroy(struct bpf_prog *fp); |
| 466 | 466 | ||
| 467 | int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk); | 467 | int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk); |
| 468 | int __sk_attach_filter(struct sock_fprog *fprog, struct sock *sk, | ||
| 469 | bool locked); | ||
| 468 | int sk_attach_bpf(u32 ufd, struct sock *sk); | 470 | int sk_attach_bpf(u32 ufd, struct sock *sk); |
| 469 | int sk_reuseport_attach_filter(struct sock_fprog *fprog, struct sock *sk); | 471 | int sk_reuseport_attach_filter(struct sock_fprog *fprog, struct sock *sk); |
| 470 | int sk_reuseport_attach_bpf(u32 ufd, struct sock *sk); | 472 | int sk_reuseport_attach_bpf(u32 ufd, struct sock *sk); |
| 471 | int sk_detach_filter(struct sock *sk); | 473 | int sk_detach_filter(struct sock *sk); |
| 474 | int __sk_detach_filter(struct sock *sk, bool locked); | ||
| 475 | |||
| 472 | int sk_get_filter(struct sock *sk, struct sock_filter __user *filter, | 476 | int sk_get_filter(struct sock *sk, struct sock_filter __user *filter, |
| 473 | unsigned int len); | 477 | unsigned int len); |
| 474 | 478 | ||
diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h index 79b0ef6aaa14..7008623e24b1 100644 --- a/include/linux/huge_mm.h +++ b/include/linux/huge_mm.h | |||
| @@ -127,7 +127,7 @@ static inline spinlock_t *pmd_trans_huge_lock(pmd_t *pmd, | |||
| 127 | if (pmd_trans_huge(*pmd) || pmd_devmap(*pmd)) | 127 | if (pmd_trans_huge(*pmd) || pmd_devmap(*pmd)) |
| 128 | return __pmd_trans_huge_lock(pmd, vma); | 128 | return __pmd_trans_huge_lock(pmd, vma); |
| 129 | else | 129 | else |
| 130 | return false; | 130 | return NULL; |
| 131 | } | 131 | } |
| 132 | static inline int hpage_nr_pages(struct page *page) | 132 | static inline int hpage_nr_pages(struct page *page) |
| 133 | { | 133 | { |
diff --git a/include/linux/netfilter/ipset/ip_set.h b/include/linux/netfilter/ipset/ip_set.h index 0e1f433cc4b7..f48b8a664b0f 100644 --- a/include/linux/netfilter/ipset/ip_set.h +++ b/include/linux/netfilter/ipset/ip_set.h | |||
| @@ -234,6 +234,10 @@ struct ip_set { | |||
| 234 | spinlock_t lock; | 234 | spinlock_t lock; |
| 235 | /* References to the set */ | 235 | /* References to the set */ |
| 236 | u32 ref; | 236 | u32 ref; |
| 237 | /* References to the set for netlink events like dump, | ||
| 238 | * ref can be swapped out by ip_set_swap | ||
| 239 | */ | ||
| 240 | u32 ref_netlink; | ||
| 237 | /* The core set type */ | 241 | /* The core set type */ |
| 238 | struct ip_set_type *type; | 242 | struct ip_set_type *type; |
| 239 | /* The type variant doing the real job */ | 243 | /* The type variant doing the real job */ |
diff --git a/include/linux/pmem.h b/include/linux/pmem.h index 3ec5309e29f3..ac6d872ce067 100644 --- a/include/linux/pmem.h +++ b/include/linux/pmem.h | |||
| @@ -42,6 +42,13 @@ static inline void arch_memcpy_to_pmem(void __pmem *dst, const void *src, | |||
| 42 | BUG(); | 42 | BUG(); |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | static inline int arch_memcpy_from_pmem(void *dst, const void __pmem *src, | ||
| 46 | size_t n) | ||
| 47 | { | ||
| 48 | BUG(); | ||
| 49 | return -EFAULT; | ||
| 50 | } | ||
| 51 | |||
| 45 | static inline size_t arch_copy_from_iter_pmem(void __pmem *addr, size_t bytes, | 52 | static inline size_t arch_copy_from_iter_pmem(void __pmem *addr, size_t bytes, |
| 46 | struct iov_iter *i) | 53 | struct iov_iter *i) |
| 47 | { | 54 | { |
| @@ -66,14 +73,17 @@ static inline void arch_invalidate_pmem(void __pmem *addr, size_t size) | |||
| 66 | #endif | 73 | #endif |
| 67 | 74 | ||
| 68 | /* | 75 | /* |
| 69 | * Architectures that define ARCH_HAS_PMEM_API must provide | 76 | * memcpy_from_pmem - read from persistent memory with error handling |
| 70 | * implementations for arch_memcpy_to_pmem(), arch_wmb_pmem(), | 77 | * @dst: destination buffer |
| 71 | * arch_copy_from_iter_pmem(), arch_clear_pmem(), arch_wb_cache_pmem() | 78 | * @src: source buffer |
| 72 | * and arch_has_wmb_pmem(). | 79 | * @size: transfer length |
| 80 | * | ||
| 81 | * Returns 0 on success negative error code on failure. | ||
| 73 | */ | 82 | */ |
| 74 | static inline void memcpy_from_pmem(void *dst, void __pmem const *src, size_t size) | 83 | static inline int memcpy_from_pmem(void *dst, void __pmem const *src, |
| 84 | size_t size) | ||
| 75 | { | 85 | { |
| 76 | memcpy(dst, (void __force const *) src, size); | 86 | return arch_memcpy_from_pmem(dst, src, size); |
| 77 | } | 87 | } |
| 78 | 88 | ||
| 79 | static inline bool arch_has_pmem_api(void) | 89 | static inline bool arch_has_pmem_api(void) |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 60bba7e032dc..52c4847b05e2 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -720,7 +720,7 @@ struct signal_struct { | |||
| 720 | struct task_cputime cputime_expires; | 720 | struct task_cputime cputime_expires; |
| 721 | 721 | ||
| 722 | #ifdef CONFIG_NO_HZ_FULL | 722 | #ifdef CONFIG_NO_HZ_FULL |
| 723 | unsigned long tick_dep_mask; | 723 | atomic_t tick_dep_mask; |
| 724 | #endif | 724 | #endif |
| 725 | 725 | ||
| 726 | struct list_head cpu_timers[3]; | 726 | struct list_head cpu_timers[3]; |
| @@ -1549,7 +1549,7 @@ struct task_struct { | |||
| 1549 | #endif | 1549 | #endif |
| 1550 | 1550 | ||
| 1551 | #ifdef CONFIG_NO_HZ_FULL | 1551 | #ifdef CONFIG_NO_HZ_FULL |
| 1552 | unsigned long tick_dep_mask; | 1552 | atomic_t tick_dep_mask; |
| 1553 | #endif | 1553 | #endif |
| 1554 | unsigned long nvcsw, nivcsw; /* context switch counts */ | 1554 | unsigned long nvcsw, nivcsw; /* context switch counts */ |
| 1555 | u64 start_time; /* monotonic time in nsec */ | 1555 | u64 start_time; /* monotonic time in nsec */ |
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h index 4bcf5a61aada..e6bc30a42a74 100644 --- a/include/linux/stmmac.h +++ b/include/linux/stmmac.h | |||
| @@ -108,7 +108,6 @@ struct stmmac_axi { | |||
| 108 | }; | 108 | }; |
| 109 | 109 | ||
| 110 | struct plat_stmmacenet_data { | 110 | struct plat_stmmacenet_data { |
| 111 | char *phy_bus_name; | ||
| 112 | int bus_id; | 111 | int bus_id; |
| 113 | int phy_addr; | 112 | int phy_addr; |
| 114 | int interface; | 113 | int interface; |
