Two easy cases of overlapping changes.
Showing the changes to include/linux (8 of 247 files). Show all
Unified · Split
| @@ -548,7 +548,6 @@ struct request_queue { · 547 unmodified lines | ||
| 548 | 548 | struct rcu_head rcu_head; |
| 549 | 549 | wait_queue_head_t mq_freeze_wq; |
| 550 | 550 | struct percpu_ref q_usage_counter; |
| 551 | − struct list_head all_q_node; | |
| 552 | 551 | |
| 553 | 552 | struct blk_mq_tag_set *tag_set; |
| 554 | 553 | struct list_head tag_set_list; |
| @@ -160,8 +160,9 @@ static inline void bvec_advance(const struct bio_vec *bvec, · 159 unmodified lines | ||
| 160 | 160 | bv->bv_page = nth_page(bv->bv_page, 1); |
| 161 | 161 | bv->bv_offset = 0; |
| 162 | 162 | } else { |
| 163 | − bv->bv_page = bvec->bv_page; | |
| 164 | − bv->bv_offset = bvec->bv_offset; | |
| 163 | + bv->bv_page = bvec_nth_page(bvec->bv_page, bvec->bv_offset / | |
| 164 | + PAGE_SIZE); | |
| 165 | + bv->bv_offset = bvec->bv_offset & ~PAGE_MASK; | |
| 165 | 166 | } |
| 166 | 167 | bv->bv_len = min_t(unsigned int, PAGE_SIZE - bv->bv_offset, |
| 167 | 168 | bvec->bv_len - iter_all->done); |
| @@ -1611,7 +1611,12 @@ efi_status_t efi_setup_gop(efi_system_table_t *sys_table_arg, · 1610 unmodified lines | ||
| 1611 | 1611 | struct screen_info *si, efi_guid_t *proto, |
| 1612 | 1612 | unsigned long size); |
| 1613 | 1613 | |
| 1614 | −bool efi_runtime_disabled(void); | |
| 1614 | +#ifdef CONFIG_EFI | |
| 1615 | +extern bool efi_runtime_disabled(void); | |
| 1616 | +#else | |
| 1617 | +static inline bool efi_runtime_disabled(void) { return true; } | |
| 1618 | +#endif | |
| 1619 | + | |
| 1615 | 1620 | extern void efi_call_virt_check_flags(unsigned long flags, const char *call); |
| 1616 | 1621 | extern unsigned long efi_call_virt_save_flags(void); |
| 1617 | 1622 | |
| @@ -31,6 +31,7 @@ struct elevator_mq_ops { · 30 unmodified lines | ||
| 31 | 31 | void (*exit_sched)(struct elevator_queue *); |
| 32 | 32 | int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int); |
| 33 | 33 | void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int); |
| 34 | + void (*depth_updated)(struct blk_mq_hw_ctx *); | |
| 34 | 35 | |
| 35 | 36 | bool (*allow_merge)(struct request_queue *, struct request *, struct bio *); |
| 36 | 37 | bool (*bio_merge)(struct blk_mq_hw_ctx *, struct bio *); |
| @@ -448,6 +448,18 @@ static inline void eth_addr_dec(u8 *addr) · 447 unmodified lines | ||
| 448 | 448 | u64_to_ether_addr(u, addr); |
| 449 | 449 | } |
| 450 | 450 | |
| 451 | +/** | |
| 452 | + * eth_addr_inc() - Increment the given MAC address. | |
| 453 | + * @addr: Pointer to a six-byte array containing Ethernet address to increment. | |
| 454 | + */ | |
| 455 | +static inline void eth_addr_inc(u8 *addr) | |
| 456 | +{ | |
| 457 | + u64 u = ether_addr_to_u64(addr); | |
| 458 | + | |
| 459 | + u++; | |
| 460 | + u64_to_ether_addr(u, addr); | |
| 461 | +} | |
| 462 | + | |
| 451 | 463 | /** |
| 452 | 464 | * is_etherdev_addr - Tell if given Ethernet address belongs to the device. |
| 453 | 465 | * @dev: Pointer to a device structure |
| @@ -173,6 +173,7 @@ struct kretprobe_instance { · 172 unmodified lines | ||
| 173 | 173 | struct kretprobe *rp; |
| 174 | 174 | kprobe_opcode_t *ret_addr; |
| 175 | 175 | struct task_struct *task; |
| 176 | + void *fp; | |
| 176 | 177 | char data[0]; |
| 177 | 178 | }; |
| 178 | 179 | |
| @@ -49,6 +49,27 @@ static inline void mmdrop(struct mm_struct *mm) · 48 unmodified lines | ||
| 49 | 49 | __mmdrop(mm); |
| 50 | 50 | } |
| 51 | 51 | |
| 52 | +/* | |
| 53 | + * This has to be called after a get_task_mm()/mmget_not_zero() | |
| 54 | + * followed by taking the mmap_sem for writing before modifying the | |
| 55 | + * vmas or anything the coredump pretends not to change from under it. | |
| 56 | + * | |
| 57 | + * NOTE: find_extend_vma() called from GUP context is the only place | |
| 58 | + * that can modify the "mm" (notably the vm_start/end) under mmap_sem | |
| 59 | + * for reading and outside the context of the process, so it is also | |
| 60 | + * the only case that holds the mmap_sem for reading that must call | |
| 61 | + * this function. Generally if the mmap_sem is hold for reading | |
| 62 | + * there's no need of this check after get_task_mm()/mmget_not_zero(). | |
| 63 | + * | |
| 64 | + * This function can be obsoleted and the check can be removed, after | |
| 65 | + * the coredump code will hold the mmap_sem for writing before | |
| 66 | + * invoking the ->core_dump methods. | |
| 67 | + */ | |
| 68 | +static inline bool mmget_still_valid(struct mm_struct *mm) | |
| 69 | +{ | |
| 70 | + return likely(!mm->core_state); | |
| 71 | +} | |
| 72 | + | |
| 52 | 73 | /** |
| 53 | 74 | * mmget() - Pin the address space associated with a &struct mm_struct. |
| 54 | 75 | * @mm: The address space to pin. |
| @@ -21,6 +21,7 @@ struct shmem_inode_info { · 20 unmodified lines | ||
| 21 | 21 | struct list_head swaplist; /* chain of maybes on swap */ |
| 22 | 22 | struct shared_policy policy; /* NUMA memory alloc policy */ |
| 23 | 23 | struct simple_xattrs xattrs; /* list of xattrs */ |
| 24 | + atomic_t stop_eviction; /* hold when working on inode */ | |
| 24 | 25 | struct inode vfs_inode; |
| 25 | 26 | }; |
| 26 | 27 | |