We need the usb fixes in here as well for other patches to build on.
Showing the changes to include/linux (9 of 173 files). Show all
Unified · Split
| @@ -311,7 +311,6 @@ enum req_flag_bits { · 310 unmodified lines | |||
| 311 | __REQ_RAHEAD, /* read ahead, can fail anytime */ | 311 | __REQ_RAHEAD, /* read ahead, can fail anytime */ |
| 312 | __REQ_BACKGROUND, /* background IO */ | 312 | __REQ_BACKGROUND, /* background IO */ |
| 313 | __REQ_NOWAIT, /* Don't wait if request will block */ | 313 | __REQ_NOWAIT, /* Don't wait if request will block */ |
| 314 | __REQ_NOWAIT_INLINE, /* Return would-block error inline */ | ||
| 315 | /* | 314 | /* |
| 316 | * When a shared kthread needs to issue a bio for a cgroup, doing | 315 | * When a shared kthread needs to issue a bio for a cgroup, doing |
| 317 | * so synchronously can lead to priority inversions as the kthread | 316 | * so synchronously can lead to priority inversions as the kthread |
| @@ -346,7 +345,6 @@ enum req_flag_bits { · 28 unmodified lines | |||
| 346 | #define REQ_RAHEAD (1ULL << __REQ_RAHEAD) | 345 | #define REQ_RAHEAD (1ULL << __REQ_RAHEAD) |
| 347 | #define REQ_BACKGROUND (1ULL << __REQ_BACKGROUND) | 346 | #define REQ_BACKGROUND (1ULL << __REQ_BACKGROUND) |
| 348 | #define REQ_NOWAIT (1ULL << __REQ_NOWAIT) | 347 | #define REQ_NOWAIT (1ULL << __REQ_NOWAIT) |
| 349 | #define REQ_NOWAIT_INLINE (1ULL << __REQ_NOWAIT_INLINE) | ||
| 350 | #define REQ_CGROUP_PUNT (1ULL << __REQ_CGROUP_PUNT) | 348 | #define REQ_CGROUP_PUNT (1ULL << __REQ_CGROUP_PUNT) |
| 351 | 349 | ||
| 352 | #define REQ_NOUNMAP (1ULL << __REQ_NOUNMAP) | 350 | #define REQ_NOUNMAP (1ULL << __REQ_NOUNMAP) |
| @@ -420,13 +418,12 @@ static inline int op_stat_group(unsigned int op) · 67 unmodified lines | |||
| 420 | 418 | ||
| 421 | typedef unsigned int blk_qc_t; | 419 | typedef unsigned int blk_qc_t; |
| 422 | #define BLK_QC_T_NONE -1U | 420 | #define BLK_QC_T_NONE -1U |
| 423 | #define BLK_QC_T_EAGAIN -2U | ||
| 424 | #define BLK_QC_T_SHIFT 16 | 421 | #define BLK_QC_T_SHIFT 16 |
| 425 | #define BLK_QC_T_INTERNAL (1U << 31) | 422 | #define BLK_QC_T_INTERNAL (1U << 31) |
| 426 | 423 | ||
| 427 | static inline bool blk_qc_t_valid(blk_qc_t cookie) | 424 | static inline bool blk_qc_t_valid(blk_qc_t cookie) |
| 428 | { | 425 | { |
| 429 | return cookie != BLK_QC_T_NONE && cookie != BLK_QC_T_EAGAIN; | 426 | return cookie != BLK_QC_T_NONE; |
| 430 | } | 427 | } |
| 431 | 428 | ||
| 432 | static inline unsigned int blk_qc_t_to_queue_num(blk_qc_t cookie) | 429 | static inline unsigned int blk_qc_t_to_queue_num(blk_qc_t cookie) |
| @@ -42,13 +42,18 @@ void arch_dma_free(struct device *dev, size_t size, void *cpu_addr, · 41 unmodified lines | |||
| 42 | dma_addr_t dma_addr, unsigned long attrs); | 42 | dma_addr_t dma_addr, unsigned long attrs); |
| 43 | long arch_dma_coherent_to_pfn(struct device *dev, void *cpu_addr, | 43 | long arch_dma_coherent_to_pfn(struct device *dev, void *cpu_addr, |
| 44 | dma_addr_t dma_addr); | 44 | dma_addr_t dma_addr); |
| 45 | |||
| 46 | #ifdef CONFIG_ARCH_HAS_DMA_MMAP_PGPROT | ||
| 47 | pgprot_t arch_dma_mmap_pgprot(struct device *dev, pgprot_t prot, | 45 | pgprot_t arch_dma_mmap_pgprot(struct device *dev, pgprot_t prot, |
| 48 | unsigned long attrs); | 46 | unsigned long attrs); |
| 47 | |||
| 48 | #ifdef CONFIG_MMU | ||
| 49 | pgprot_t dma_pgprot(struct device *dev, pgprot_t prot, unsigned long attrs); | ||
| 49 | #else | 50 | #else |
| 50 | # define arch_dma_mmap_pgprot(dev, prot, attrs) pgprot_noncached(prot) | 51 | static inline pgprot_t dma_pgprot(struct device *dev, pgprot_t prot, |
| 51 | #endif | 52 | unsigned long attrs) |
| 53 | { | ||
| 54 | return prot; /* no protection bits supported without page tables */ | ||
| 55 | } | ||
| 56 | #endif /* CONFIG_MMU */ | ||
| 52 | 57 | ||
| 53 | #ifdef CONFIG_DMA_NONCOHERENT_CACHE_SYNC | 58 | #ifdef CONFIG_DMA_NONCOHERENT_CACHE_SYNC |
| 54 | void arch_dma_cache_sync(struct device *dev, void *vaddr, size_t size, | 59 | void arch_dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
| @@ -510,22 +510,18 @@ alloc_pages(gfp_t gfp_mask, unsigned int order) · 509 unmodified lines | |||
| 510 | } | 510 | } |
| 511 | extern struct page *alloc_pages_vma(gfp_t gfp_mask, int order, | 511 | extern struct page *alloc_pages_vma(gfp_t gfp_mask, int order, |
| 512 | struct vm_area_struct *vma, unsigned long addr, | 512 | struct vm_area_struct *vma, unsigned long addr, |
| 513 | int node, bool hugepage); | 513 | int node); |
| 514 | #define alloc_hugepage_vma(gfp_mask, vma, addr, order) \ | ||
| 515 | alloc_pages_vma(gfp_mask, order, vma, addr, numa_node_id(), true) | ||
| 516 | #else | 514 | #else |
| 517 | #define alloc_pages(gfp_mask, order) \ | 515 | #define alloc_pages(gfp_mask, order) \ |
| 518 | alloc_pages_node(numa_node_id(), gfp_mask, order) | 516 | alloc_pages_node(numa_node_id(), gfp_mask, order) |
| 519 | #define alloc_pages_vma(gfp_mask, order, vma, addr, node, false)\ | 517 | #define alloc_pages_vma(gfp_mask, order, vma, addr, node)\ |
| 520 | alloc_pages(gfp_mask, order) | ||
| 521 | #define alloc_hugepage_vma(gfp_mask, vma, addr, order) \ | ||
| 522 | alloc_pages(gfp_mask, order) | 518 | alloc_pages(gfp_mask, order) |
| 523 | #endif | 519 | #endif |
| 524 | #define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0) | 520 | #define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0) |
| 525 | #define alloc_page_vma(gfp_mask, vma, addr) \ | 521 | #define alloc_page_vma(gfp_mask, vma, addr) \ |
| 526 | alloc_pages_vma(gfp_mask, 0, vma, addr, numa_node_id(), false) | 522 | alloc_pages_vma(gfp_mask, 0, vma, addr, numa_node_id()) |
| 527 | #define alloc_page_vma_node(gfp_mask, vma, addr, node) \ | 523 | #define alloc_page_vma_node(gfp_mask, vma, addr, node) \ |
| 528 | alloc_pages_vma(gfp_mask, 0, vma, addr, node, false) | 524 | alloc_pages_vma(gfp_mask, 0, vma, addr, node) |
| 529 | 525 | ||
| 530 | extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order); | 526 | extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order); |
| 531 | extern unsigned long get_zeroed_page(gfp_t gfp_mask); | 527 | extern unsigned long get_zeroed_page(gfp_t gfp_mask); |
| @@ -668,6 +668,7 @@ static inline unsigned long lruvec_page_state_local(struct lruvec *lruvec, · 667 unmodified lines | |||
| 668 | 668 | ||
| 669 | void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, | 669 | void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, |
| 670 | int val); | 670 | int val); |
| 671 | void __mod_lruvec_slab_state(void *p, enum node_stat_item idx, int val); | ||
| 671 | 672 | ||
| 672 | static inline void mod_lruvec_state(struct lruvec *lruvec, | 673 | static inline void mod_lruvec_state(struct lruvec *lruvec, |
| 673 | enum node_stat_item idx, int val) | 674 | enum node_stat_item idx, int val) |
| @@ -1072,6 +1073,14 @@ static inline void mod_lruvec_page_state(struct page *page, · 398 unmodified lines | |||
| 1072 | mod_node_page_state(page_pgdat(page), idx, val); | 1073 | mod_node_page_state(page_pgdat(page), idx, val); |
| 1073 | } | 1074 | } |
| 1074 | 1075 | ||
| 1076 | static inline void __mod_lruvec_slab_state(void *p, enum node_stat_item idx, | ||
| 1077 | int val) | ||
| 1078 | { | ||
| 1079 | struct page *page = virt_to_head_page(p); | ||
| 1080 | |||
| 1081 | __mod_node_page_state(page_pgdat(page), idx, val); | ||
| 1082 | } | ||
| 1083 | |||
| 1075 | static inline | 1084 | static inline |
| 1076 | unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order, | 1085 | unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order, |
| 1077 | gfp_t gfp_mask, | 1086 | gfp_t gfp_mask, |
| @@ -1159,6 +1168,16 @@ static inline void __dec_lruvec_page_state(struct page *page, · 81 unmodified lines | |||
| 1159 | __mod_lruvec_page_state(page, idx, -1); | 1168 | __mod_lruvec_page_state(page, idx, -1); |
| 1160 | } | 1169 | } |
| 1161 | 1170 | ||
| 1171 | static inline void __inc_lruvec_slab_state(void *p, enum node_stat_item idx) | ||
| 1172 | { | ||
| 1173 | __mod_lruvec_slab_state(p, idx, 1); | ||
| 1174 | } | ||
| 1175 | |||
| 1176 | static inline void __dec_lruvec_slab_state(void *p, enum node_stat_item idx) | ||
| 1177 | { | ||
| 1178 | __mod_lruvec_slab_state(p, idx, -1); | ||
| 1179 | } | ||
| 1180 | |||
| 1162 | /* idx can be of type enum memcg_stat_item or node_stat_item */ | 1181 | /* idx can be of type enum memcg_stat_item or node_stat_item */ |
| 1163 | static inline void inc_memcg_state(struct mem_cgroup *memcg, | 1182 | static inline void inc_memcg_state(struct mem_cgroup *memcg, |
| 1164 | int idx) | 1183 | int idx) |
| @@ -139,6 +139,8 @@ struct mempolicy *mpol_shared_policy_lookup(struct shared_policy *sp, · 138 unmodified lines | |||
| 139 | struct mempolicy *get_task_policy(struct task_struct *p); | 139 | struct mempolicy *get_task_policy(struct task_struct *p); |
| 140 | struct mempolicy *__get_vma_policy(struct vm_area_struct *vma, | 140 | struct mempolicy *__get_vma_policy(struct vm_area_struct *vma, |
| 141 | unsigned long addr); | 141 | unsigned long addr); |
| 142 | struct mempolicy *get_vma_policy(struct vm_area_struct *vma, | ||
| 143 | unsigned long addr); | ||
| 142 | bool vma_policy_mof(struct vm_area_struct *vma); | 144 | bool vma_policy_mof(struct vm_area_struct *vma); |
| 143 | 145 | ||
| 144 | extern void numa_default_policy(void); | 146 | extern void numa_default_policy(void); |
| @@ -159,7 +159,16 @@ struct page { · 158 unmodified lines | |||
| 159 | /** @pgmap: Points to the hosting device page map. */ | 159 | /** @pgmap: Points to the hosting device page map. */ |
| 160 | struct dev_pagemap *pgmap; | 160 | struct dev_pagemap *pgmap; |
| 161 | void *zone_device_data; | 161 | void *zone_device_data; |
| 162 | unsigned long _zd_pad_1; /* uses mapping */ | 162 | /* |
| 163 | * ZONE_DEVICE private pages are counted as being | ||
| 164 | * mapped so the next 3 words hold the mapping, index, | ||
| 165 | * and private fields from the source anonymous or | ||
| 166 | * page cache page while the page is migrated to device | ||
| 167 | * private memory. | ||
| 168 | * ZONE_DEVICE MEMORY_DEVICE_FS_DAX pages also | ||
| 169 | * use the mapping, index, and private fields when | ||
| 170 | * pmem backed DAX files are mapped. | ||
| 171 | */ | ||
| 163 | }; | 172 | }; |
| 164 | 173 | ||
| 165 | /** @rcu_head: You can use this to free a page by RCU. */ | 174 | /** @rcu_head: You can use this to free a page by RCU. */ |
| @@ -1567,8 +1567,10 @@ extern bool pcie_ports_native; · 1566 unmodified lines | |||
| 1567 | 1567 | ||
| 1568 | #ifdef CONFIG_PCIEASPM | 1568 | #ifdef CONFIG_PCIEASPM |
| 1569 | bool pcie_aspm_support_enabled(void); | 1569 | bool pcie_aspm_support_enabled(void); |
| 1570 | bool pcie_aspm_enabled(struct pci_dev *pdev); | ||
| 1570 | #else | 1571 | #else |
| 1571 | static inline bool pcie_aspm_support_enabled(void) { return false; } | 1572 | static inline bool pcie_aspm_support_enabled(void) { return false; } |
| 1573 | static inline bool pcie_aspm_enabled(struct pci_dev *pdev) { return false; } | ||
| 1572 | #endif | 1574 | #endif |
| 1573 | 1575 | ||
| 1574 | #ifdef CONFIG_PCIEAER | 1576 | #ifdef CONFIG_PCIEAER |
| @@ -1463,7 +1463,7 @@ typedef void (*usb_complete_t)(struct urb *); · 1462 unmodified lines | |||
| 1463 | * field rather than determining a dma address themselves. | 1463 | * field rather than determining a dma address themselves. |
| 1464 | * | 1464 | * |
| 1465 | * Note that transfer_buffer must still be set if the controller | 1465 | * Note that transfer_buffer must still be set if the controller |
| 1466 | * does not support DMA (as indicated by bus.uses_dma) and when talking | 1466 | * does not support DMA (as indicated by hcd_uses_dma()) and when talking |
| 1467 | * to root hub. If you have to trasfer between highmem zone and the device | 1467 | * to root hub. If you have to trasfer between highmem zone and the device |
| 1468 | * on such controller, create a bounce buffer or bail out with an error. | 1468 | * on such controller, create a bounce buffer or bail out with an error. |
| 1469 | * If transfer_buffer cannot be set (is in highmem) and the controller is DMA | 1469 | * If transfer_buffer cannot be set (is in highmem) and the controller is DMA |
| @@ -422,6 +422,9 @@ static inline bool hcd_periodic_completion_in_progress(struct usb_hcd *hcd, · 421 unmodified lines | |||
| 422 | return hcd->high_prio_bh.completing_ep == ep; | 422 | return hcd->high_prio_bh.completing_ep == ep; |
| 423 | } | 423 | } |
| 424 | 424 | ||
| 425 | #define hcd_uses_dma(hcd) \ | ||
| 426 | (IS_ENABLED(CONFIG_HAS_DMA) && (hcd)->self.uses_dma) | ||
| 427 | |||
| 425 | extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb); | 428 | extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb); |
| 426 | extern int usb_hcd_check_unlink_urb(struct usb_hcd *hcd, struct urb *urb, | 429 | extern int usb_hcd_check_unlink_urb(struct usb_hcd *hcd, struct urb *urb, |
| 427 | int status); | 430 | int status); |