Fixes the following sparse warnings: include/trace/events/*: sparse: cast to restricted gfp_t include/trace/events/*: sparse: restricted gfp_t degrades to integer gfp_t type is bitwise and requires __force attributes for any casts.
Unified · Split
| @@ -367,7 +367,7 @@ static inline int gfp_migratetype(const gfp_t gfp_flags) · 366 unmodified lines | ||
| 367 | 367 | return MIGRATE_UNMOVABLE; |
| 368 | 368 | |
| 369 | 369 | /* Group based on mobility */ |
| 370 | − return (gfp_flags & GFP_MOVABLE_MASK) >> GFP_MOVABLE_SHIFT; | |
| 370 | + return (__force unsigned long)(gfp_flags & GFP_MOVABLE_MASK) >> GFP_MOVABLE_SHIFT; | |
| 371 | 371 | } |
| 372 | 372 | #undef GFP_MOVABLE_MASK |
| 373 | 373 | #undef GFP_MOVABLE_SHIFT |
| @@ -1344,13 +1344,13 @@ TRACE_EVENT(alloc_extent_state, · 1343 unmodified lines | ||
| 1344 | 1344 | |
| 1345 | 1345 | TP_STRUCT__entry( |
| 1346 | 1346 | __field(const struct extent_state *, state) |
| 1347 | − __field(gfp_t, mask) | |
| 1347 | + __field(unsigned long, mask) | |
| 1348 | 1348 | __field(const void*, ip) |
| 1349 | 1349 | ), |
| 1350 | 1350 | |
| 1351 | 1351 | TP_fast_assign( |
| 1352 | 1352 | __entry->state = state, |
| 1353 | − __entry->mask = mask, | |
| 1353 | + __entry->mask = (__force unsigned long)mask, | |
| 1354 | 1354 | __entry->ip = (const void *)IP |
| 1355 | 1355 | ), |
| 1356 | 1356 | |
| @@ -162,13 +162,13 @@ TRACE_EVENT(mm_compaction_try_to_compact_pages, · 161 unmodified lines | ||
| 162 | 162 | |
| 163 | 163 | TP_STRUCT__entry( |
| 164 | 164 | __field(int, order) |
| 165 | − __field(gfp_t, gfp_mask) | |
| 165 | + __field(unsigned long, gfp_mask) | |
| 166 | 166 | __field(int, prio) |
| 167 | 167 | ), |
| 168 | 168 | |
| 169 | 169 | TP_fast_assign( |
| 170 | 170 | __entry->order = order; |
| 171 | − __entry->gfp_mask = gfp_mask; | |
| 171 | + __entry->gfp_mask = (__force unsigned long)gfp_mask; | |
| 172 | 172 | __entry->prio = prio; |
| 173 | 173 | ), |
| 174 | 174 | |
| @@ -24,7 +24,7 @@ DECLARE_EVENT_CLASS(kmem_alloc, · 23 unmodified lines | ||
| 24 | 24 | __field( const void *, ptr ) |
| 25 | 25 | __field( size_t, bytes_req ) |
| 26 | 26 | __field( size_t, bytes_alloc ) |
| 27 | − __field( gfp_t, gfp_flags ) | |
| 27 | + __field( unsigned long, gfp_flags ) | |
| 28 | 28 | ), |
| 29 | 29 | |
| 30 | 30 | TP_fast_assign( |
| @@ -32,7 +32,7 @@ DECLARE_EVENT_CLASS(kmem_alloc, · 1 unmodified line | ||
| 32 | 32 | __entry->ptr = ptr; |
| 33 | 33 | __entry->bytes_req = bytes_req; |
| 34 | 34 | __entry->bytes_alloc = bytes_alloc; |
| 35 | − __entry->gfp_flags = gfp_flags; | |
| 35 | + __entry->gfp_flags = (__force unsigned long)gfp_flags; | |
| 36 | 36 | ), |
| 37 | 37 | |
| 38 | 38 | TP_printk("call_site=%pS ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s", |
| @@ -75,7 +75,7 @@ DECLARE_EVENT_CLASS(kmem_alloc_node, · 36 unmodified lines | ||
| 75 | 75 | __field( const void *, ptr ) |
| 76 | 76 | __field( size_t, bytes_req ) |
| 77 | 77 | __field( size_t, bytes_alloc ) |
| 78 | − __field( gfp_t, gfp_flags ) | |
| 78 | + __field( unsigned long, gfp_flags ) | |
| 79 | 79 | __field( int, node ) |
| 80 | 80 | ), |
| 81 | 81 | |
| @@ -84,7 +84,7 @@ DECLARE_EVENT_CLASS(kmem_alloc_node, · 2 unmodified lines | ||
| 84 | 84 | __entry->ptr = ptr; |
| 85 | 85 | __entry->bytes_req = bytes_req; |
| 86 | 86 | __entry->bytes_alloc = bytes_alloc; |
| 87 | − __entry->gfp_flags = gfp_flags; | |
| 87 | + __entry->gfp_flags = (__force unsigned long)gfp_flags; | |
| 88 | 88 | __entry->node = node; |
| 89 | 89 | ), |
| 90 | 90 | |
| @@ -208,14 +208,14 @@ TRACE_EVENT(mm_page_alloc, · 117 unmodified lines | ||
| 208 | 208 | TP_STRUCT__entry( |
| 209 | 209 | __field( unsigned long, pfn ) |
| 210 | 210 | __field( unsigned int, order ) |
| 211 | − __field( gfp_t, gfp_flags ) | |
| 211 | + __field( unsigned long, gfp_flags ) | |
| 212 | 212 | __field( int, migratetype ) |
| 213 | 213 | ), |
| 214 | 214 | |
| 215 | 215 | TP_fast_assign( |
| 216 | 216 | __entry->pfn = page ? page_to_pfn(page) : -1UL; |
| 217 | 217 | __entry->order = order; |
| 218 | − __entry->gfp_flags = gfp_flags; | |
| 218 | + __entry->gfp_flags = (__force unsigned long)gfp_flags; | |
| 219 | 219 | __entry->migratetype = migratetype; |
| 220 | 220 | ), |
| 221 | 221 | |
| @@ -14,48 +14,48 @@ · 13 unmodified lines | ||
| 14 | 14 | */ |
| 15 | 15 | |
| 16 | 16 | #define __def_gfpflag_names \ |
| 17 | − {(unsigned long)GFP_TRANSHUGE, "GFP_TRANSHUGE"}, \ | |
| 18 | − {(unsigned long)GFP_TRANSHUGE_LIGHT, "GFP_TRANSHUGE_LIGHT"}, \ | |
| 19 | − {(unsigned long)GFP_HIGHUSER_MOVABLE, "GFP_HIGHUSER_MOVABLE"},\ | |
| 20 | − {(unsigned long)GFP_HIGHUSER, "GFP_HIGHUSER"}, \ | |
| 21 | − {(unsigned long)GFP_USER, "GFP_USER"}, \ | |
| 22 | − {(unsigned long)GFP_KERNEL_ACCOUNT, "GFP_KERNEL_ACCOUNT"}, \ | |
| 23 | − {(unsigned long)GFP_KERNEL, "GFP_KERNEL"}, \ | |
| 24 | − {(unsigned long)GFP_NOFS, "GFP_NOFS"}, \ | |
| 25 | − {(unsigned long)GFP_ATOMIC, "GFP_ATOMIC"}, \ | |
| 26 | − {(unsigned long)GFP_NOIO, "GFP_NOIO"}, \ | |
| 27 | − {(unsigned long)GFP_NOWAIT, "GFP_NOWAIT"}, \ | |
| 28 | − {(unsigned long)GFP_DMA, "GFP_DMA"}, \ | |
| 29 | − {(unsigned long)__GFP_HIGHMEM, "__GFP_HIGHMEM"}, \ | |
| 30 | − {(unsigned long)GFP_DMA32, "GFP_DMA32"}, \ | |
| 31 | − {(unsigned long)__GFP_HIGH, "__GFP_HIGH"}, \ | |
| 32 | − {(unsigned long)__GFP_ATOMIC, "__GFP_ATOMIC"}, \ | |
| 33 | − {(unsigned long)__GFP_IO, "__GFP_IO"}, \ | |
| 34 | − {(unsigned long)__GFP_FS, "__GFP_FS"}, \ | |
| 35 | − {(unsigned long)__GFP_NOWARN, "__GFP_NOWARN"}, \ | |
| 36 | − {(unsigned long)__GFP_RETRY_MAYFAIL, "__GFP_RETRY_MAYFAIL"}, \ | |
| 37 | − {(unsigned long)__GFP_NOFAIL, "__GFP_NOFAIL"}, \ | |
| 38 | − {(unsigned long)__GFP_NORETRY, "__GFP_NORETRY"}, \ | |
| 39 | − {(unsigned long)__GFP_COMP, "__GFP_COMP"}, \ | |
| 40 | − {(unsigned long)__GFP_ZERO, "__GFP_ZERO"}, \ | |
| 41 | − {(unsigned long)__GFP_NOMEMALLOC, "__GFP_NOMEMALLOC"}, \ | |
| 42 | − {(unsigned long)__GFP_MEMALLOC, "__GFP_MEMALLOC"}, \ | |
| 43 | − {(unsigned long)__GFP_HARDWALL, "__GFP_HARDWALL"}, \ | |
| 44 | − {(unsigned long)__GFP_THISNODE, "__GFP_THISNODE"}, \ | |
| 45 | − {(unsigned long)__GFP_RECLAIMABLE, "__GFP_RECLAIMABLE"}, \ | |
| 46 | − {(unsigned long)__GFP_MOVABLE, "__GFP_MOVABLE"}, \ | |
| 47 | − {(unsigned long)__GFP_ACCOUNT, "__GFP_ACCOUNT"}, \ | |
| 48 | − {(unsigned long)__GFP_WRITE, "__GFP_WRITE"}, \ | |
| 49 | − {(unsigned long)__GFP_RECLAIM, "__GFP_RECLAIM"}, \ | |
| 50 | − {(unsigned long)__GFP_DIRECT_RECLAIM, "__GFP_DIRECT_RECLAIM"},\ | |
| 51 | − {(unsigned long)__GFP_KSWAPD_RECLAIM, "__GFP_KSWAPD_RECLAIM"},\ | |
| 52 | − {(unsigned long)__GFP_ZEROTAGS, "__GFP_ZEROTAGS"} \ | |
| 17 | + {(__force unsigned long)GFP_TRANSHUGE, "GFP_TRANSHUGE"}, \ | |
| 18 | + {(__force unsigned long)GFP_TRANSHUGE_LIGHT, "GFP_TRANSHUGE_LIGHT"}, \ | |
| 19 | + {(__force unsigned long)GFP_HIGHUSER_MOVABLE, "GFP_HIGHUSER_MOVABLE"},\ | |
| 20 | + {(__force unsigned long)GFP_HIGHUSER, "GFP_HIGHUSER"}, \ | |
| 21 | + {(__force unsigned long)GFP_USER, "GFP_USER"}, \ | |
| 22 | + {(__force unsigned long)GFP_KERNEL_ACCOUNT, "GFP_KERNEL_ACCOUNT"}, \ | |
| 23 | + {(__force unsigned long)GFP_KERNEL, "GFP_KERNEL"}, \ | |
| 24 | + {(__force unsigned long)GFP_NOFS, "GFP_NOFS"}, \ | |
| 25 | + {(__force unsigned long)GFP_ATOMIC, "GFP_ATOMIC"}, \ | |
| 26 | + {(__force unsigned long)GFP_NOIO, "GFP_NOIO"}, \ | |
| 27 | + {(__force unsigned long)GFP_NOWAIT, "GFP_NOWAIT"}, \ | |
| 28 | + {(__force unsigned long)GFP_DMA, "GFP_DMA"}, \ | |
| 29 | + {(__force unsigned long)__GFP_HIGHMEM, "__GFP_HIGHMEM"}, \ | |
| 30 | + {(__force unsigned long)GFP_DMA32, "GFP_DMA32"}, \ | |
| 31 | + {(__force unsigned long)__GFP_HIGH, "__GFP_HIGH"}, \ | |
| 32 | + {(__force unsigned long)__GFP_ATOMIC, "__GFP_ATOMIC"}, \ | |
| 33 | + {(__force unsigned long)__GFP_IO, "__GFP_IO"}, \ | |
| 34 | + {(__force unsigned long)__GFP_FS, "__GFP_FS"}, \ | |
| 35 | + {(__force unsigned long)__GFP_NOWARN, "__GFP_NOWARN"}, \ | |
| 36 | + {(__force unsigned long)__GFP_RETRY_MAYFAIL, "__GFP_RETRY_MAYFAIL"}, \ | |
| 37 | + {(__force unsigned long)__GFP_NOFAIL, "__GFP_NOFAIL"}, \ | |
| 38 | + {(__force unsigned long)__GFP_NORETRY, "__GFP_NORETRY"}, \ | |
| 39 | + {(__force unsigned long)__GFP_COMP, "__GFP_COMP"}, \ | |
| 40 | + {(__force unsigned long)__GFP_ZERO, "__GFP_ZERO"}, \ | |
| 41 | + {(__force unsigned long)__GFP_NOMEMALLOC, "__GFP_NOMEMALLOC"}, \ | |
| 42 | + {(__force unsigned long)__GFP_MEMALLOC, "__GFP_MEMALLOC"}, \ | |
| 43 | + {(__force unsigned long)__GFP_HARDWALL, "__GFP_HARDWALL"}, \ | |
| 44 | + {(__force unsigned long)__GFP_THISNODE, "__GFP_THISNODE"}, \ | |
| 45 | + {(__force unsigned long)__GFP_RECLAIMABLE, "__GFP_RECLAIMABLE"}, \ | |
| 46 | + {(__force unsigned long)__GFP_MOVABLE, "__GFP_MOVABLE"}, \ | |
| 47 | + {(__force unsigned long)__GFP_ACCOUNT, "__GFP_ACCOUNT"}, \ | |
| 48 | + {(__force unsigned long)__GFP_WRITE, "__GFP_WRITE"}, \ | |
| 49 | + {(__force unsigned long)__GFP_RECLAIM, "__GFP_RECLAIM"}, \ | |
| 50 | + {(__force unsigned long)__GFP_DIRECT_RECLAIM, "__GFP_DIRECT_RECLAIM"},\ | |
| 51 | + {(__force unsigned long)__GFP_KSWAPD_RECLAIM, "__GFP_KSWAPD_RECLAIM"},\ | |
| 52 | + {(__force unsigned long)__GFP_ZEROTAGS, "__GFP_ZEROTAGS"} \ | |
| 53 | 53 | |
| 54 | 54 | #ifdef CONFIG_KASAN_HW_TAGS |
| 55 | 55 | #define __def_gfpflag_names_kasan , \ |
| 56 | − {(unsigned long)__GFP_SKIP_ZERO, "__GFP_SKIP_ZERO"}, \ | |
| 57 | − {(unsigned long)__GFP_SKIP_KASAN_POISON, "__GFP_SKIP_KASAN_POISON"}, \ | |
| 58 | − {(unsigned long)__GFP_SKIP_KASAN_UNPOISON, "__GFP_SKIP_KASAN_UNPOISON"} | |
| 56 | + {(__force unsigned long)__GFP_SKIP_ZERO, "__GFP_SKIP_ZERO"}, \ | |
| 57 | + {(__force unsigned long)__GFP_SKIP_KASAN_POISON, "__GFP_SKIP_KASAN_POISON"}, \ | |
| 58 | + {(__force unsigned long)__GFP_SKIP_KASAN_UNPOISON, "__GFP_SKIP_KASAN_UNPOISON"} | |
| 59 | 59 | #else |
| 60 | 60 | #define __def_gfpflag_names_kasan |
| 61 | 61 | #endif |
| @@ -96,14 +96,14 @@ TRACE_EVENT(mm_vmscan_wakeup_kswapd, · 95 unmodified lines | ||
| 96 | 96 | __field( int, nid ) |
| 97 | 97 | __field( int, zid ) |
| 98 | 98 | __field( int, order ) |
| 99 | − __field( gfp_t, gfp_flags ) | |
| 99 | + __field( unsigned long, gfp_flags ) | |
| 100 | 100 | ), |
| 101 | 101 | |
| 102 | 102 | TP_fast_assign( |
| 103 | 103 | __entry->nid = nid; |
| 104 | 104 | __entry->zid = zid; |
| 105 | 105 | __entry->order = order; |
| 106 | − __entry->gfp_flags = gfp_flags; | |
| 106 | + __entry->gfp_flags = (__force unsigned long)gfp_flags; | |
| 107 | 107 | ), |
| 108 | 108 | |
| 109 | 109 | TP_printk("nid=%d order=%d gfp_flags=%s", |
| @@ -120,12 +120,12 @@ DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template, · 10 unmodified lines | ||
| 120 | 120 | |
| 121 | 121 | TP_STRUCT__entry( |
| 122 | 122 | __field( int, order ) |
| 123 | − __field( gfp_t, gfp_flags ) | |
| 123 | + __field( unsigned long, gfp_flags ) | |
| 124 | 124 | ), |
| 125 | 125 | |
| 126 | 126 | TP_fast_assign( |
| 127 | 127 | __entry->order = order; |
| 128 | − __entry->gfp_flags = gfp_flags; | |
| 128 | + __entry->gfp_flags = (__force unsigned long)gfp_flags; | |
| 129 | 129 | ), |
| 130 | 130 | |
| 131 | 131 | TP_printk("order=%d gfp_flags=%s", |
| @@ -210,7 +210,7 @@ TRACE_EVENT(mm_shrink_slab_start, · 78 unmodified lines | ||
| 210 | 210 | __field(void *, shrink) |
| 211 | 211 | __field(int, nid) |
| 212 | 212 | __field(long, nr_objects_to_shrink) |
| 213 | − __field(gfp_t, gfp_flags) | |
| 213 | + __field(unsigned long, gfp_flags) | |
| 214 | 214 | __field(unsigned long, cache_items) |
| 215 | 215 | __field(unsigned long long, delta) |
| 216 | 216 | __field(unsigned long, total_scan) |
| @@ -222,7 +222,7 @@ TRACE_EVENT(mm_shrink_slab_start, · 5 unmodified lines | ||
| 222 | 222 | __entry->shrink = shr->scan_objects; |
| 223 | 223 | __entry->nid = sc->nid; |
| 224 | 224 | __entry->nr_objects_to_shrink = nr_objects_to_shrink; |
| 225 | − __entry->gfp_flags = sc->gfp_mask; | |
| 225 | + __entry->gfp_flags = (__force unsigned long)sc->gfp_mask; | |
| 226 | 226 | __entry->cache_items = cache_items; |
| 227 | 227 | __entry->delta = delta; |
| 228 | 228 | __entry->total_scan = total_scan; |
| @@ -446,13 +446,13 @@ TRACE_EVENT(mm_vmscan_node_reclaim_begin, · 217 unmodified lines | ||
| 446 | 446 | TP_STRUCT__entry( |
| 447 | 447 | __field(int, nid) |
| 448 | 448 | __field(int, order) |
| 449 | − __field(gfp_t, gfp_flags) | |
| 449 | + __field(unsigned long, gfp_flags) | |
| 450 | 450 | ), |
| 451 | 451 | |
| 452 | 452 | TP_fast_assign( |
| 453 | 453 | __entry->nid = nid; |
| 454 | 454 | __entry->order = order; |
| 455 | − __entry->gfp_flags = gfp_flags; | |
| 455 | + __entry->gfp_flags = (__force unsigned long)gfp_flags; | |
| 456 | 456 | ), |
| 457 | 457 | |
| 458 | 458 | TP_printk("nid=%d order=%d gfp_flags=%s", |
| @@ -2569,7 +2569,7 @@ enum compact_result try_to_compact_pages(gfp_t gfp_mask, unsigned int order, · 2568 unmodified lines | ||
| 2569 | 2569 | unsigned int alloc_flags, const struct alloc_context *ac, |
| 2570 | 2570 | enum compact_priority prio, struct page **capture) |
| 2571 | 2571 | { |
| 2572 | − int may_perform_io = gfp_mask & __GFP_IO; | |
| 2572 | + int may_perform_io = (__force int)(gfp_mask & __GFP_IO); | |
| 2573 | 2573 | struct zoneref *z; |
| 2574 | 2574 | struct zone *zone; |
| 2575 | 2575 | enum compact_result rc = COMPACT_SKIPPED; |