ACIL FM
Dark
Refresh
Current DIR:
/usr/src/kernels/5.14.0-427.31.1.el9_4.x86_64/scripts/coccinelle/api
/
usr
src
kernels
5.14.0-427.31.1.el9_4.x86_64
scripts
coccinelle
api
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
alloc
-
chmod
Open
Rename
Delete
debugfs
-
chmod
Open
Rename
Delete
atomic_as_refcounter.cocci
2.22 MB
chmod
View
DL
Edit
Rename
Delete
check_bq27xxx_data.cocci
3.46 MB
chmod
View
DL
Edit
Rename
Delete
device_attr_show.cocci
1.08 MB
chmod
View
DL
Edit
Rename
Delete
d_find_alias.cocci
1.28 MB
chmod
View
DL
Edit
Rename
Delete
err_cast.cocci
1.09 MB
chmod
View
DL
Edit
Rename
Delete
kfree_mismatch.cocci
5.56 MB
chmod
View
DL
Edit
Rename
Delete
kfree_sensitive.cocci
1.91 MB
chmod
View
DL
Edit
Rename
Delete
kstrdup.cocci
2.42 MB
chmod
View
DL
Edit
Rename
Delete
kvmalloc.cocci
6.13 MB
chmod
View
DL
Edit
Rename
Delete
memdup.cocci
1.33 MB
chmod
View
DL
Edit
Rename
Delete
memdup_user.cocci
2.58 MB
chmod
View
DL
Edit
Rename
Delete
platform_get_irq.cocci
1.22 MB
chmod
View
DL
Edit
Rename
Delete
platform_no_drv_owner.cocci
3.81 MB
chmod
View
DL
Edit
Rename
Delete
pm_runtime.cocci
2.37 MB
chmod
View
DL
Edit
Rename
Delete
resource_size.cocci
2.08 MB
chmod
View
DL
Edit
Rename
Delete
simple_open.cocci
1.21 MB
chmod
View
DL
Edit
Rename
Delete
stream_open.cocci
7.7 MB
chmod
View
DL
Edit
Rename
Delete
vma_pages.cocci
1.48 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /usr/src/kernels/5.14.0-427.31.1.el9_4.x86_64/scripts/coccinelle/api/kvmalloc.cocci
// SPDX-License-Identifier: GPL-2.0-only /// /// Find if/else condition with kmalloc/vmalloc calls. /// Suggest to use kvmalloc instead. Same for kvfree. /// // Confidence: High // Copyright: (C) 2020 Denis Efremov ISPRAS // Options: --no-includes --include-headers // virtual patch virtual report virtual org virtual context @initialize:python@ @@ filter = frozenset(['kvfree']) def relevant(p): return not (filter & {el.current_element for el in p}) @kvmalloc depends on !patch@ expression E, E1, size; identifier flags; binary operator cmp = {<=, <, ==, >, >=}; identifier x; type T; position p; @@ ( * if (size cmp E1 || ...)@p { ... * E = \(kmalloc\|kzalloc\|kcalloc\|kmalloc_node\|kzalloc_node\| * kmalloc_array\|kmalloc_array_node\|kcalloc_node\) * (..., size, \(flags\|GFP_KERNEL\|\(GFP_KERNEL\|flags\)|__GFP_NOWARN\), ...) ... } else { ... * E = \(vmalloc\|vzalloc\|vmalloc_node\|vzalloc_node\)(..., size, ...) ... } | * E = \(kmalloc\|kzalloc\|kcalloc\|kmalloc_node\|kzalloc_node\| * kmalloc_array\|kmalloc_array_node\|kcalloc_node\) * (..., size, \(flags\|GFP_KERNEL\|\(GFP_KERNEL\|flags\)|__GFP_NOWARN\), ...) ... when != E = E1 when != size = E1 when any * if (E == NULL)@p { ... * E = \(vmalloc\|vzalloc\|vmalloc_node\|vzalloc_node\)(..., size, ...) ... } | * T x = \(kmalloc\|kzalloc\|kcalloc\|kmalloc_node\|kzalloc_node\| * kmalloc_array\|kmalloc_array_node\|kcalloc_node\) * (..., size, \(flags\|GFP_KERNEL\|\(GFP_KERNEL\|flags\)|__GFP_NOWARN\), ...); ... when != x = E1 when != size = E1 when any * if (x == NULL)@p { ... * x = \(vmalloc\|vzalloc\|vmalloc_node\|vzalloc_node\)(..., size, ...) ... } ) @kvfree depends on !patch@ expression E; position p : script:python() { relevant(p) }; @@ * if (is_vmalloc_addr(E))@p { ... * vfree(E) ... } else { ... when != krealloc(E, ...) when any * \(kfree\|kzfree\)(E) ... } @depends on patch@ expression E, E1, size, node; binary operator cmp = {<=, <, ==, >, >=}; identifier flags, x; type T; @@ ( - if (size cmp E1) - E = kmalloc(size, flags); - else - E = vmalloc(size); + E = kvmalloc(size, flags); | - if (size cmp E1) - E = kmalloc(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\)); - else - E = vmalloc(size); + E = kvmalloc(size, GFP_KERNEL); | - E = kmalloc(size, flags | __GFP_NOWARN); - if (E == NULL) - E = vmalloc(size); + E = kvmalloc(size, flags); | - E = kmalloc(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\)); - if (E == NULL) - E = vmalloc(size); + E = kvmalloc(size, GFP_KERNEL); | - T x = kmalloc(size, flags | __GFP_NOWARN); - if (x == NULL) - x = vmalloc(size); + T x = kvmalloc(size, flags); | - T x = kmalloc(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\)); - if (x == NULL) - x = vmalloc(size); + T x = kvmalloc(size, GFP_KERNEL); | - if (size cmp E1) - E = kzalloc(size, flags); - else - E = vzalloc(size); + E = kvzalloc(size, flags); | - if (size cmp E1) - E = kzalloc(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\)); - else - E = vzalloc(size); + E = kvzalloc(size, GFP_KERNEL); | - E = kzalloc(size, flags | __GFP_NOWARN); - if (E == NULL) - E = vzalloc(size); + E = kvzalloc(size, flags); | - E = kzalloc(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\)); - if (E == NULL) - E = vzalloc(size); + E = kvzalloc(size, GFP_KERNEL); | - T x = kzalloc(size, flags | __GFP_NOWARN); - if (x == NULL) - x = vzalloc(size); + T x = kvzalloc(size, flags); | - T x = kzalloc(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\)); - if (x == NULL) - x = vzalloc(size); + T x = kvzalloc(size, GFP_KERNEL); | - if (size cmp E1) - E = kmalloc_node(size, flags, node); - else - E = vmalloc_node(size, node); + E = kvmalloc_node(size, flags, node); | - if (size cmp E1) - E = kmalloc_node(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\), node); - else - E = vmalloc_node(size, node); + E = kvmalloc_node(size, GFP_KERNEL, node); | - E = kmalloc_node(size, flags | __GFP_NOWARN, node); - if (E == NULL) - E = vmalloc_node(size, node); + E = kvmalloc_node(size, flags, node); | - E = kmalloc_node(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\), node); - if (E == NULL) - E = vmalloc_node(size, node); + E = kvmalloc_node(size, GFP_KERNEL, node); | - T x = kmalloc_node(size, flags | __GFP_NOWARN, node); - if (x == NULL) - x = vmalloc_node(size, node); + T x = kvmalloc_node(size, flags, node); | - T x = kmalloc_node(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\), node); - if (x == NULL) - x = vmalloc_node(size, node); + T x = kvmalloc_node(size, GFP_KERNEL, node); | - if (size cmp E1) - E = kvzalloc_node(size, flags, node); - else - E = vzalloc_node(size, node); + E = kvzalloc_node(size, flags, node); | - if (size cmp E1) - E = kvzalloc_node(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\), node); - else - E = vzalloc_node(size, node); + E = kvzalloc_node(size, GFP_KERNEL, node); | - E = kvzalloc_node(size, flags | __GFP_NOWARN, node); - if (E == NULL) - E = vzalloc_node(size, node); + E = kvzalloc_node(size, flags, node); | - E = kvzalloc_node(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\), node); - if (E == NULL) - E = vzalloc_node(size, node); + E = kvzalloc_node(size, GFP_KERNEL, node); | - T x = kvzalloc_node(size, flags | __GFP_NOWARN, node); - if (x == NULL) - x = vzalloc_node(size, node); + T x = kvzalloc_node(size, flags, node); | - T x = kvzalloc_node(size, \(GFP_KERNEL\|GFP_KERNEL|__GFP_NOWARN\), node); - if (x == NULL) - x = vzalloc_node(size, node); + T x = kvzalloc_node(size, GFP_KERNEL, node); ) @depends on patch@ expression E; position p : script:python() { relevant(p) }; @@ - if (is_vmalloc_addr(E))@p - vfree(E); - else - kfree(E); + kvfree(E); @script: python depends on report@ p << kvmalloc.p; @@ coccilib.report.print_report(p[0], "WARNING opportunity for kvmalloc") @script: python depends on org@ p << kvmalloc.p; @@ coccilib.org.print_todo(p[0], "WARNING opportunity for kvmalloc") @script: python depends on report@ p << kvfree.p; @@ coccilib.report.print_report(p[0], "WARNING opportunity for kvfree") @script: python depends on org@ p << kvfree.p; @@ coccilib.org.print_todo(p[0], "WARNING opportunity for kvfree")
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply