History

tracing: incorrect gfp_t conversion

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.

Vasily Averin committed 4 years ago

Commit fe573321 parent e7be8d17 files · +59 −59Browse files

Unified · Split

7 files
  1. include/linux/gfp.h +1 −1
  2. include/trace/events/btrfs.h +2 −2
  3. include/trace/events/compaction.h +2 −2
  4. include/trace/events/kmem.h +6 −6
  5. include/trace/events/mmflags.h +39 −39
  6. include/trace/events/vmscan.h +8 −8
  7. mm/compaction.c +1 −1
include/linux/gfp.h+1−1
@@ -367,7 +367,7 @@ static inline int gfp_migratetype(const gfp_t gfp_flags) · 366 unmodified lines
367367 return MIGRATE_UNMOVABLE;
368368
369369 /* 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;
371371 }
372372 #undef GFP_MOVABLE_MASK
373373 #undef GFP_MOVABLE_SHIFT
include/trace/events/btrfs.h+2−2
@@ -1344,13 +1344,13 @@ TRACE_EVENT(alloc_extent_state, · 1343 unmodified lines
13441344
13451345 TP_STRUCT__entry(
13461346 __field(const struct extent_state *, state)
1347− __field(gfp_t, mask)
1347+ __field(unsigned long, mask)
13481348 __field(const void*, ip)
13491349 ),
13501350
13511351 TP_fast_assign(
13521352 __entry->state = state,
1353− __entry->mask = mask,
1353+ __entry->mask = (__force unsigned long)mask,
13541354 __entry->ip = (const void *)IP
13551355 ),
13561356
include/trace/events/compaction.h+2−2
@@ -162,13 +162,13 @@ TRACE_EVENT(mm_compaction_try_to_compact_pages, · 161 unmodified lines
162162
163163 TP_STRUCT__entry(
164164 __field(int, order)
165− __field(gfp_t, gfp_mask)
165+ __field(unsigned long, gfp_mask)
166166 __field(int, prio)
167167 ),
168168
169169 TP_fast_assign(
170170 __entry->order = order;
171− __entry->gfp_mask = gfp_mask;
171+ __entry->gfp_mask = (__force unsigned long)gfp_mask;
172172 __entry->prio = prio;
173173 ),
174174
include/trace/events/kmem.h+6−6
@@ -24,7 +24,7 @@ DECLARE_EVENT_CLASS(kmem_alloc, · 23 unmodified lines
2424 __field( const void *, ptr )
2525 __field( size_t, bytes_req )
2626 __field( size_t, bytes_alloc )
27− __field( gfp_t, gfp_flags )
27+ __field( unsigned long, gfp_flags )
2828 ),
2929
3030 TP_fast_assign(
@@ -32,7 +32,7 @@ DECLARE_EVENT_CLASS(kmem_alloc, · 1 unmodified line
3232 __entry->ptr = ptr;
3333 __entry->bytes_req = bytes_req;
3434 __entry->bytes_alloc = bytes_alloc;
35− __entry->gfp_flags = gfp_flags;
35+ __entry->gfp_flags = (__force unsigned long)gfp_flags;
3636 ),
3737
3838 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
7575 __field( const void *, ptr )
7676 __field( size_t, bytes_req )
7777 __field( size_t, bytes_alloc )
78− __field( gfp_t, gfp_flags )
78+ __field( unsigned long, gfp_flags )
7979 __field( int, node )
8080 ),
8181
@@ -84,7 +84,7 @@ DECLARE_EVENT_CLASS(kmem_alloc_node, · 2 unmodified lines
8484 __entry->ptr = ptr;
8585 __entry->bytes_req = bytes_req;
8686 __entry->bytes_alloc = bytes_alloc;
87− __entry->gfp_flags = gfp_flags;
87+ __entry->gfp_flags = (__force unsigned long)gfp_flags;
8888 __entry->node = node;
8989 ),
9090
@@ -208,14 +208,14 @@ TRACE_EVENT(mm_page_alloc, · 117 unmodified lines
208208 TP_STRUCT__entry(
209209 __field( unsigned long, pfn )
210210 __field( unsigned int, order )
211− __field( gfp_t, gfp_flags )
211+ __field( unsigned long, gfp_flags )
212212 __field( int, migratetype )
213213 ),
214214
215215 TP_fast_assign(
216216 __entry->pfn = page ? page_to_pfn(page) : -1UL;
217217 __entry->order = order;
218− __entry->gfp_flags = gfp_flags;
218+ __entry->gfp_flags = (__force unsigned long)gfp_flags;
219219 __entry->migratetype = migratetype;
220220 ),
221221
include/trace/events/mmflags.h+39−39
@@ -14,48 +14,48 @@ · 13 unmodified lines
1414 */
1515
1616 #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"} \
5353
5454 #ifdef CONFIG_KASAN_HW_TAGS
5555 #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"}
5959 #else
6060 #define __def_gfpflag_names_kasan
6161 #endif
include/trace/events/vmscan.h+8−8
@@ -96,14 +96,14 @@ TRACE_EVENT(mm_vmscan_wakeup_kswapd, · 95 unmodified lines
9696 __field( int, nid )
9797 __field( int, zid )
9898 __field( int, order )
99− __field( gfp_t, gfp_flags )
99+ __field( unsigned long, gfp_flags )
100100 ),
101101
102102 TP_fast_assign(
103103 __entry->nid = nid;
104104 __entry->zid = zid;
105105 __entry->order = order;
106− __entry->gfp_flags = gfp_flags;
106+ __entry->gfp_flags = (__force unsigned long)gfp_flags;
107107 ),
108108
109109 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
120120
121121 TP_STRUCT__entry(
122122 __field( int, order )
123− __field( gfp_t, gfp_flags )
123+ __field( unsigned long, gfp_flags )
124124 ),
125125
126126 TP_fast_assign(
127127 __entry->order = order;
128− __entry->gfp_flags = gfp_flags;
128+ __entry->gfp_flags = (__force unsigned long)gfp_flags;
129129 ),
130130
131131 TP_printk("order=%d gfp_flags=%s",
@@ -210,7 +210,7 @@ TRACE_EVENT(mm_shrink_slab_start, · 78 unmodified lines
210210 __field(void *, shrink)
211211 __field(int, nid)
212212 __field(long, nr_objects_to_shrink)
213− __field(gfp_t, gfp_flags)
213+ __field(unsigned long, gfp_flags)
214214 __field(unsigned long, cache_items)
215215 __field(unsigned long long, delta)
216216 __field(unsigned long, total_scan)
@@ -222,7 +222,7 @@ TRACE_EVENT(mm_shrink_slab_start, · 5 unmodified lines
222222 __entry->shrink = shr->scan_objects;
223223 __entry->nid = sc->nid;
224224 __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;
226226 __entry->cache_items = cache_items;
227227 __entry->delta = delta;
228228 __entry->total_scan = total_scan;
@@ -446,13 +446,13 @@ TRACE_EVENT(mm_vmscan_node_reclaim_begin, · 217 unmodified lines
446446 TP_STRUCT__entry(
447447 __field(int, nid)
448448 __field(int, order)
449− __field(gfp_t, gfp_flags)
449+ __field(unsigned long, gfp_flags)
450450 ),
451451
452452 TP_fast_assign(
453453 __entry->nid = nid;
454454 __entry->order = order;
455− __entry->gfp_flags = gfp_flags;
455+ __entry->gfp_flags = (__force unsigned long)gfp_flags;
456456 ),
457457
458458 TP_printk("nid=%d order=%d gfp_flags=%s",
mm/compaction.c+1−1
@@ -2569,7 +2569,7 @@ enum compact_result try_to_compact_pages(gfp_t gfp_mask, unsigned int order, · 2568 unmodified lines
25692569 unsigned int alloc_flags, const struct alloc_context *ac,
25702570 enum compact_priority prio, struct page **capture)
25712571 {
2572− int may_perform_io = gfp_mask & __GFP_IO;
2572+ int may_perform_io = (__force int)(gfp_mask & __GFP_IO);
25732573 struct zoneref *z;
25742574 struct zone *zone;
25752575 enum compact_result rc = COMPACT_SKIPPED;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t