Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) // SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) ///
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) /// Find if/else condition with kmalloc/vmalloc calls.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) /// Suggest to use kvmalloc instead. Same for kvfree.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) ///
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) // Confidence: High
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) // Copyright: (C) 2020 Denis Efremov ISPRAS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) // Options: --no-includes --include-headers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) //
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) virtual patch
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) virtual report
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) virtual org
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) virtual context
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) @initialize:python@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) @@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) filter = frozenset(['kvfree'])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) def relevant(p):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21)     return not (filter & {el.current_element for el in p})
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) @kvmalloc depends on !patch@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) expression E, E1, size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) identifier flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) binary operator cmp = {<=, <, ==, >, >=};
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) identifier x;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) type T;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) position p;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) @@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) (
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) * if (size cmp E1 || ...)@p {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34)     ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) *    E = \(kmalloc\|kzalloc\|kcalloc\|kmalloc_node\|kzalloc_node\|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) *          kmalloc_array\|kmalloc_array_node\|kcalloc_node\)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) *          (..., size, \(flags\|GFP_KERNEL\|\(GFP_KERNEL\|flags\)|__GFP_NOWARN\), ...)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38)     ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39)   } else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)     ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) *    E = \(vmalloc\|vzalloc\|vmalloc_node\|vzalloc_node\)(..., size, ...)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)     ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43)   }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) * E = \(kmalloc\|kzalloc\|kcalloc\|kmalloc_node\|kzalloc_node\|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) *       kmalloc_array\|kmalloc_array_node\|kcalloc_node\)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) *       (..., size, \(flags\|GFP_KERNEL\|\(GFP_KERNEL\|flags\)|__GFP_NOWARN\), ...)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48)   ... when != E = E1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49)       when != size = E1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50)       when any
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) * if (E == NULL)@p {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52)     ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) *   E = \(vmalloc\|vzalloc\|vmalloc_node\|vzalloc_node\)(..., size, ...)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54)     ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55)   }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) * T x = \(kmalloc\|kzalloc\|kcalloc\|kmalloc_node\|kzalloc_node\|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) *         kmalloc_array\|kmalloc_array_node\|kcalloc_node\)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) *         (..., size, \(flags\|GFP_KERNEL\|\(GFP_KERNEL\|flags\)|__GFP_NOWARN\), ...);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)   ... when != x = E1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61)       when != size = E1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62)       when any
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) * if (x == NULL)@p {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64)     ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) *   x = \(vmalloc\|vzalloc\|vmalloc_node\|vzalloc_node\)(..., size, ...)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66)     ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67)   }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) @kvfree depends on !patch@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) expression E;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) position p : script:python() { relevant(p) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) @@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) * if (is_vmalloc_addr(E))@p {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76)     ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) *   vfree(E)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78)     ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79)   } else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80)     ... when != krealloc(E, ...)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81)         when any
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) *   \(kfree\|kzfree\)(E)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)     ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)   }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) @depends on patch@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) expression E, E1, size, node;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) binary operator cmp = {<=, <, ==, >, >=};
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) identifier flags, x;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) type T;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) @@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) (
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) - if (size cmp E1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) -    E = kmalloc(size, flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) - else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) -    E = vmalloc(size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) + E = kvmalloc(size, flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) - if (size cmp E1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) -    E = kmalloc(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) - else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) -    E = vmalloc(size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) + E = kvmalloc(size, GFP_KERNEL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) - E = kmalloc(size, flags | __GFP_NOWARN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) - if (E == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) -   E = vmalloc(size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) + E = kvmalloc(size, flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) - E = kmalloc(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) - if (E == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) -   E = vmalloc(size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) + E = kvmalloc(size, GFP_KERNEL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) - T x = kmalloc(size, flags | __GFP_NOWARN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) - if (x == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) -   x = vmalloc(size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) + T x = kvmalloc(size, flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) - T x = kmalloc(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) - if (x == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) -   x = vmalloc(size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) + T x = kvmalloc(size, GFP_KERNEL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) - if (size cmp E1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) -    E = kzalloc(size, flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) - else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) -    E = vzalloc(size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) + E = kvzalloc(size, flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) - if (size cmp E1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) -    E = kzalloc(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) - else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) -    E = vzalloc(size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) + E = kvzalloc(size, GFP_KERNEL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) - E = kzalloc(size, flags | __GFP_NOWARN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) - if (E == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) -   E = vzalloc(size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) + E = kvzalloc(size, flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) - E = kzalloc(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) - if (E == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) -   E = vzalloc(size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) + E = kvzalloc(size, GFP_KERNEL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) - T x = kzalloc(size, flags | __GFP_NOWARN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) - if (x == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) -   x = vzalloc(size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) + T x = kvzalloc(size, flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) - T x = kzalloc(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) - if (x == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) -   x = vzalloc(size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) + T x = kvzalloc(size, GFP_KERNEL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) - if (size cmp E1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) -    E = kmalloc_node(size, flags, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) - else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) -    E = vmalloc_node(size, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) + E = kvmalloc_node(size, flags, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) - if (size cmp E1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) -    E = kmalloc_node(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\), node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) - else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) -    E = vmalloc_node(size, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) + E = kvmalloc_node(size, GFP_KERNEL, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) - E = kmalloc_node(size, flags | __GFP_NOWARN, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) - if (E == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) -   E = vmalloc_node(size, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) + E = kvmalloc_node(size, flags, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) - E = kmalloc_node(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\), node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) - if (E == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) -   E = vmalloc_node(size, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) + E = kvmalloc_node(size, GFP_KERNEL, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) - T x = kmalloc_node(size, flags | __GFP_NOWARN, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) - if (x == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) -   x = vmalloc_node(size, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) + T x = kvmalloc_node(size, flags, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) - T x = kmalloc_node(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\), node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) - if (x == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) -   x = vmalloc_node(size, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) + T x = kvmalloc_node(size, GFP_KERNEL, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) - if (size cmp E1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) -    E = kvzalloc_node(size, flags, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) - else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) -    E = vzalloc_node(size, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) + E = kvzalloc_node(size, flags, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) - if (size cmp E1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) -    E = kvzalloc_node(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\), node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) - else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) -    E = vzalloc_node(size, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) + E = kvzalloc_node(size, GFP_KERNEL, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) - E = kvzalloc_node(size, flags | __GFP_NOWARN, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) - if (E == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) -   E = vzalloc_node(size, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) + E = kvzalloc_node(size, flags, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) - E = kvzalloc_node(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\), node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) - if (E == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) -   E = vzalloc_node(size, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) + E = kvzalloc_node(size, GFP_KERNEL, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) - T x = kvzalloc_node(size, flags | __GFP_NOWARN, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) - if (x == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) -   x = vzalloc_node(size, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) + T x = kvzalloc_node(size, flags, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) - T x = kvzalloc_node(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\), node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) - if (x == NULL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) -   x = vzalloc_node(size, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) + T x = kvzalloc_node(size, GFP_KERNEL, node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) @depends on patch@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) expression E;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) position p : script:python() { relevant(p) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) @@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) - if (is_vmalloc_addr(E))@p
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) -   vfree(E);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) - else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) -   kfree(E);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) + kvfree(E);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) @script: python depends on report@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) p << kvmalloc.p;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) @@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) coccilib.report.print_report(p[0], "WARNING opportunity for kvmalloc")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) @script: python depends on org@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) p << kvmalloc.p;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) @@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) coccilib.org.print_todo(p[0], "WARNING opportunity for kvmalloc")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) @script: python depends on report@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) p << kvfree.p;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) @@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) coccilib.report.print_report(p[0], "WARNING opportunity for kvfree")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) @script: python depends on org@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) p << kvfree.p;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) @@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) coccilib.org.print_todo(p[0], "WARNING opportunity for kvfree")