Overlapping header include additions in macsec.c A bug fix in 'net' overlapping with the removal of 'version' string in ena_netdev.c Overlapping test additions in selftests Makefile Overlapping PCI ID table adjustments in iwlwifi driver.
Showing the changes to include/linux (14 of 416 files). Show all
Unified · Split
| @@ -69,19 +69,23 @@ struct dmar_pci_notify_info { · 68 unmodified lines | ||
| 69 | 69 | extern struct rw_semaphore dmar_global_lock; |
| 70 | 70 | extern struct list_head dmar_drhd_units; |
| 71 | 71 | |
| 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()) | |
| 74 | 75 | |
| 75 | 76 | #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()) \ | |
| 77 | 79 | if (drhd->ignored) {} else |
| 78 | 80 | |
| 79 | 81 | #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()) \ | |
| 81 | 84 | if (i=drhd->iommu, drhd->ignored) {} else |
| 82 | 85 | |
| 83 | 86 | #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()) \ | |
| 85 | 89 | if (i=drhd->iommu, 0) {} else |
| 86 | 90 | |
| 87 | 91 | static inline bool dmar_rcu_check(void) |
| @@ -28,8 +28,6 @@ int dsa_8021q_rx_switch_id(u16 vid); · 27 unmodified lines | ||
| 28 | 28 | |
| 29 | 29 | int dsa_8021q_rx_source_port(u16 vid); |
| 30 | 30 | |
| 31 | −struct sk_buff *dsa_8021q_remove_header(struct sk_buff *skb); | |
| 32 | − | |
| 33 | 31 | #else |
| 34 | 32 | |
| 35 | 33 | int dsa_port_setup_8021q_tagging(struct dsa_switch *ds, int index, |
| @@ -64,11 +62,6 @@ int dsa_8021q_rx_source_port(u16 vid) · 28 unmodified lines | ||
| 64 | 62 | return 0; |
| 65 | 63 | } |
| 66 | 64 | |
| 67 | −struct sk_buff *dsa_8021q_remove_header(struct sk_buff *skb) | |
| 68 | −{ | |
| 69 | − return NULL; | |
| 70 | −} | |
| 71 | − | |
| 72 | 65 | #endif /* IS_ENABLED(CONFIG_NET_DSA_TAG_8021Q) */ |
| 73 | 66 | |
| 74 | 67 | #endif /* _NET_DSA_8021Q_H */ |
| @@ -85,6 +85,7 @@ extern int f_dupfd(unsigned int from, struct file *file, unsigned flags); · 84 unmodified lines | ||
| 85 | 85 | extern int replace_fd(unsigned fd, struct file *file, unsigned flags); |
| 86 | 86 | extern void set_close_on_exec(unsigned int fd, int flag); |
| 87 | 87 | extern bool get_close_on_exec(unsigned int fd); |
| 88 | +extern int __get_unused_fd_flags(unsigned flags, unsigned long nofile); | |
| 88 | 89 | extern int get_unused_fd_flags(unsigned flags); |
| 89 | 90 | extern void put_unused_fd(unsigned int fd); |
| 90 | 91 | |
| @@ -698,6 +698,7 @@ struct inode { · 697 unmodified lines | ||
| 698 | 698 | struct rcu_head i_rcu; |
| 699 | 699 | }; |
| 700 | 700 | atomic64_t i_version; |
| 701 | + atomic64_t i_sequence; /* see futex */ | |
| 701 | 702 | atomic_t i_count; |
| 702 | 703 | atomic_t i_dio_count; |
| 703 | 704 | atomic_t i_writecount; |
| @@ -31,23 +31,26 @@ struct task_struct; · 30 unmodified lines | ||
| 31 | 31 | |
| 32 | 32 | union futex_key { |
| 33 | 33 | struct { |
| 34 | + u64 i_seq; | |
| 34 | 35 | unsigned long pgoff; |
| 35 | − struct inode *inode; | |
| 36 | − int offset; | |
| 36 | + unsigned int offset; | |
| 37 | 37 | } shared; |
| 38 | 38 | struct { |
| 39 | + union { | |
| 40 | + struct mm_struct *mm; | |
| 41 | + u64 __tmp; | |
| 42 | + }; | |
| 39 | 43 | unsigned long address; |
| 40 | − struct mm_struct *mm; | |
| 41 | − int offset; | |
| 44 | + unsigned int offset; | |
| 42 | 45 | } private; |
| 43 | 46 | struct { |
| 47 | + u64 ptr; | |
| 44 | 48 | unsigned long word; |
| 45 | − void *ptr; | |
| 46 | − int offset; | |
| 49 | + unsigned int offset; | |
| 47 | 50 | } both; |
| 48 | 51 | }; |
| 49 | 52 | |
| 50 | −#define FUTEX_KEY_INIT (union futex_key) { .both = { .ptr = NULL } } | |
| 53 | +#define FUTEX_KEY_INIT (union futex_key) { .both = { .ptr = 0ULL } } | |
| 51 | 54 | |
| 52 | 55 | #ifdef CONFIG_FUTEX |
| 53 | 56 | enum { |
| @@ -245,18 +245,6 @@ static inline bool disk_part_scan_enabled(struct gendisk *disk) · 244 unmodified lines | ||
| 245 | 245 | !(disk->flags & GENHD_FL_NO_PART_SCAN); |
| 246 | 246 | } |
| 247 | 247 | |
| 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 | − | |
| 260 | 248 | static inline dev_t disk_devt(struct gendisk *disk) |
| 261 | 249 | { |
| 262 | 250 | 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 | ||
| 298 | 286 | |
| 299 | 287 | extern struct hd_struct *disk_map_sector_rcu(struct gendisk *disk, |
| 300 | 288 | sector_t sector); |
| 289 | +bool disk_has_partitions(struct gendisk *disk); | |
| 301 | 290 | |
| 302 | 291 | /* |
| 303 | 292 | * Macros to operate on percpu disk statistics: |
| @@ -123,6 +123,8 @@ · 122 unmodified lines | ||
| 123 | 123 | |
| 124 | 124 | #define dmar_readq(a) readq(a) |
| 125 | 125 | #define dmar_writeq(a,v) writeq(v,a) |
| 126 | +#define dmar_readl(a) readl(a) | |
| 127 | +#define dmar_writel(a, v) writel(v, a) | |
| 126 | 128 | |
| 127 | 129 | #define DMAR_VER_MAJOR(v) (((v) & 0xf0) >> 4) |
| 128 | 130 | #define DMAR_VER_MINOR(v) ((v) & 0x0f) |
| @@ -333,6 +333,7 @@ struct mmc_host { · 332 unmodified lines | ||
| 333 | 333 | MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR104 | \ |
| 334 | 334 | MMC_CAP_UHS_DDR50) |
| 335 | 335 | #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. */ | |
| 336 | 337 | #define MMC_CAP_DRIVER_TYPE_A (1 << 23) /* Host supports Driver Type A */ |
| 337 | 338 | #define MMC_CAP_DRIVER_TYPE_C (1 << 24) /* Host supports Driver Type C */ |
| 338 | 339 | #define MMC_CAP_DRIVER_TYPE_D (1 << 25) /* Host supports Driver Type D */ |
| @@ -115,6 +115,19 @@ static inline void nl_set_extack_cookie_u64(struct netlink_ext_ack *extack, · 114 unmodified lines | ||
| 115 | 115 | { |
| 116 | 116 | u64 __cookie = cookie; |
| 117 | 117 | |
| 118 | + if (!extack) | |
| 119 | + return; | |
| 120 | + memcpy(extack->cookie, &__cookie, sizeof(__cookie)); | |
| 121 | + extack->cookie_len = sizeof(__cookie); | |
| 122 | +} | |
| 123 | + | |
| 124 | +static inline void nl_set_extack_cookie_u32(struct netlink_ext_ack *extack, | |
| 125 | + u32 cookie) | |
| 126 | +{ | |
| 127 | + u32 __cookie = cookie; | |
| 128 | + | |
| 129 | + if (!extack) | |
| 130 | + return; | |
| 118 | 131 | memcpy(extack->cookie, &__cookie, sizeof(__cookie)); |
| 119 | 132 | extack->cookie_len = sizeof(__cookie); |
| 120 | 133 | } |
| @@ -11,17 +11,17 @@ struct of_device_id; · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | #if defined(CONFIG_COMMON_CLK) && defined(CONFIG_OF) |
| 13 | 13 | |
| 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); | |
| 16 | 16 | void of_clk_init(const struct of_device_id *matches); |
| 17 | 17 | |
| 18 | 18 | #else /* !CONFIG_COMMON_CLK || !CONFIG_OF */ |
| 19 | 19 | |
| 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) | |
| 21 | 21 | { |
| 22 | 22 | return 0; |
| 23 | 23 | } |
| 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, | |
| 25 | 25 | int index) |
| 26 | 26 | { |
| 27 | 27 | return NULL; |
| @@ -311,7 +311,7 @@ static inline int TestClearPage##uname(struct page *page) { return 0; } · 310 unmodified lines | ||
| 311 | 311 | |
| 312 | 312 | __PAGEFLAG(Locked, locked, PF_NO_TAIL) |
| 313 | 313 | 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) | |
| 315 | 315 | PAGEFLAG(Referenced, referenced, PF_HEAD) |
| 316 | 316 | TESTCLEARFLAG(Referenced, referenced, PF_HEAD) |
| 317 | 317 | __SETPAGEFLAG(Referenced, referenced, PF_HEAD) |
| @@ -645,8 +645,8 @@ typedef unsigned char *sk_buff_data_t; · 644 unmodified lines | ||
| 645 | 645 | * @offload_l3_fwd_mark: Packet was L3-forwarded in hardware |
| 646 | 646 | * @tc_skip_classify: do not classify packet. set by IFB device |
| 647 | 647 | * @tc_at_ingress: used within tc_classify to distinguish in/egress |
| 648 | − * @tc_redirected: packet was redirected by a tc action | |
| 649 | − * @tc_from_ingress: if tc_redirected, tc_at_ingress at time of redirect | |
| 648 | + * @redirected: packet was redirected by packet classifier | |
| 649 | + * @from_ingress: packet was redirected from the ingress path | |
| 650 | 650 | * @peeked: this packet has been seen already, so stats have been |
| 651 | 651 | * done for it, don't do them again |
| 652 | 652 | * @nf_trace: netfilter packet trace flag |
| @@ -848,8 +848,10 @@ struct sk_buff { · 195 unmodified lines | ||
| 848 | 848 | #ifdef CONFIG_NET_CLS_ACT |
| 849 | 849 | __u8 tc_skip_classify:1; |
| 850 | 850 | __u8 tc_at_ingress:1; |
| 851 | − __u8 tc_redirected:1; | |
| 852 | − __u8 tc_from_ingress:1; | |
| 851 | +#endif | |
| 852 | +#ifdef CONFIG_NET_REDIRECT | |
| 853 | + __u8 redirected:1; | |
| 854 | + __u8 from_ingress:1; | |
| 853 | 855 | #endif |
| 854 | 856 | #ifdef CONFIG_TLS_DEVICE |
| 855 | 857 | __u8 decrypted:1; |
| @@ -4571,5 +4573,31 @@ static inline __wsum lco_csum(struct sk_buff *skb) · 3715 unmodified lines | ||
| 4571 | 4573 | return csum_partial(l4_hdr, csum_start - l4_hdr, partial); |
| 4572 | 4574 | } |
| 4573 | 4575 | |
| 4576 | +static inline bool skb_is_redirected(const struct sk_buff *skb) | |
| 4577 | +{ | |
| 4578 | +#ifdef CONFIG_NET_REDIRECT | |
| 4579 | + return skb->redirected; | |
| 4580 | +#else | |
| 4581 | + return false; | |
| 4582 | +#endif | |
| 4583 | +} | |
| 4584 | + | |
| 4585 | +static inline void skb_set_redirected(struct sk_buff *skb, bool from_ingress) | |
| 4586 | +{ | |
| 4587 | +#ifdef CONFIG_NET_REDIRECT | |
| 4588 | + skb->redirected = 1; | |
| 4589 | + skb->from_ingress = from_ingress; | |
| 4590 | + if (skb->from_ingress) | |
| 4591 | + skb->tstamp = 0; | |
| 4592 | +#endif | |
| 4593 | +} | |
| 4594 | + | |
| 4595 | +static inline void skb_reset_redirect(struct sk_buff *skb) | |
| 4596 | +{ | |
| 4597 | +#ifdef CONFIG_NET_REDIRECT | |
| 4598 | + skb->redirected = 0; | |
| 4599 | +#endif | |
| 4600 | +} | |
| 4601 | + | |
| 4574 | 4602 | #endif /* __KERNEL__ */ |
| 4575 | 4603 | #endif /* _LINUX_SKBUFF_H */ |
| @@ -401,7 +401,8 @@ extern int __sys_sendto(int fd, void __user *buff, size_t len, · 400 unmodified lines | ||
| 401 | 401 | int addr_len); |
| 402 | 402 | extern int __sys_accept4_file(struct file *file, unsigned file_flags, |
| 403 | 403 | struct sockaddr __user *upeer_sockaddr, |
| 404 | − int __user *upeer_addrlen, int flags); | |
| 404 | + int __user *upeer_addrlen, int flags, | |
| 405 | + unsigned long nofile); | |
| 405 | 406 | extern int __sys_accept4(int fd, struct sockaddr __user *upeer_sockaddr, |
| 406 | 407 | int __user *upeer_addrlen, int flags); |
| 407 | 408 | extern int __sys_socket(int family, int type, int protocol); |
| @@ -141,8 +141,9 @@ extern int remap_vmalloc_range_partial(struct vm_area_struct *vma, · 140 unmodified lines | ||
| 141 | 141 | |
| 142 | 142 | extern int remap_vmalloc_range(struct vm_area_struct *vma, void *addr, |
| 143 | 143 | unsigned long pgoff); |
| 144 | −void vmalloc_sync_all(void); | |
| 145 | − | |
| 144 | +void vmalloc_sync_mappings(void); | |
| 145 | +void vmalloc_sync_unmappings(void); | |
| 146 | + | |
| 146 | 147 | /* |
| 147 | 148 | * Lowlevel-APIs (not for driver use!) |
| 148 | 149 | */ |