In the Linux kernel, the following vulnerability has been resolved:
usb: cdns3: fix random warning message when driver load
Warning log: [ 4.141392] Unexpected gfp: 0x4 (GFPDMA32). Fixing up to gfp: 0xa20 (GFPATOMIC). Fix your code! [ 4.150340] CPU: 1 PID: 175 Comm: 1-0050 Not tainted 5.15.5-00039-g2fd9ae1b568c #20 [ 4.158010] Hardware name: Freescale i.MX8QXP MEK (DT) [ 4.163155] Call trace: [ 4.165600] dumpbacktrace+0x0/0x1b0 [ 4.169286] showstack+0x18/0x68 [ 4.172611] dumpstacklvl+0x68/0x84 [ 4.176286] dumpstack+0x18/0x34 [ 4.179613] kmallocfixflags+0x60/0x88 [ 4.183550] newslab+0x334/0x370 [ 4.186878] ___slab_alloc.part.108+0x4d4/0x748 [ 4.191419] __slaballoc.isra.109+0x30/0x78 [ 4.195702] kmemcachealloc+0x40c/0x420 [ 4.199725] dmapoolalloc+0xac/0x1f8 [ 4.203486] cdns3allocatetrbpool+0xb4/0xd0
poolallocpage(struct dmapool *pool, gfpt memflags) { ... page = kmalloc(sizeof(*page), memflags); page->vaddr = dmaalloccoherent(pool->dev, pool->allocation, &page->dma, mem_flags); ... }
kmalloc was called with memflags, which is passed down in cdns3allocatetrbpool() and have GFPDMA32 flags. kmallfix_flags() report warning.
GFPDMA32 is not useful at all. dmaalloccoherent() will handle DMA memory region correctly by pool->dev. GFPDMA32 can be removed safely.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/50xxx/CVE-2022-50151.json",
"cna_assigner": "Linux"
}[
{
"signature_type": "Function",
"digest": {
"function_hash": "116250930362513878491895589198318903153",
"length": 805.0
},
"deprecated": false,
"id": "CVE-2022-50151-82158eb5",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8e142744f0e96abc69ccd99e6d6c7eb662267f21",
"target": {
"file": "drivers/usb/cdns3/cdns3-gadget.c",
"function": "cdns3_allocate_trb_pool"
}
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "116250930362513878491895589198318903153",
"length": 805.0
},
"id": "CVE-2022-50151-ae385c33",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8659ab3d936fcf0084676f98b75b317017aa8f82",
"target": {
"file": "drivers/usb/cdns3/cdns3-gadget.c",
"function": "cdns3_allocate_trb_pool"
}
},
{
"signature_type": "Line",
"digest": {
"line_hashes": [
"326989465199215596240952563775386700180",
"258883310546139606228988619171700734389",
"106790489807670152608249704734086421763",
"300058021731226737356344340948466406817"
],
"threshold": 0.9
},
"signature_version": "v1",
"id": "CVE-2022-50151-c05111c5",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@960a8a35a6027a08c4b511435bf59609b5d5e5cd",
"target": {
"file": "drivers/usb/cdns3/cdns3-gadget.c"
}
},
{
"signature_type": "Function",
"target": {
"file": "drivers/usb/cdns3/cdns3-gadget.c",
"function": "cdns3_allocate_trb_pool"
},
"deprecated": false,
"id": "CVE-2022-50151-ebbd496d",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@960a8a35a6027a08c4b511435bf59609b5d5e5cd",
"digest": {
"function_hash": "116250930362513878491895589198318903153",
"length": 805.0
}
},
{
"signature_type": "Line",
"digest": {
"line_hashes": [
"326989465199215596240952563775386700180",
"258883310546139606228988619171700734389",
"106790489807670152608249704734086421763",
"300058021731226737356344340948466406817"
],
"threshold": 0.9
},
"deprecated": false,
"id": "CVE-2022-50151-f84e2311",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8659ab3d936fcf0084676f98b75b317017aa8f82",
"target": {
"file": "drivers/usb/cdns3/cdns3-gadget.c"
}
},
{
"signature_type": "Line",
"target": {
"file": "drivers/usb/cdns3/cdns3-gadget.c"
},
"deprecated": false,
"id": "CVE-2022-50151-fe4db4ee",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8e142744f0e96abc69ccd99e6d6c7eb662267f21",
"digest": {
"line_hashes": [
"326989465199215596240952563775386700180",
"258883310546139606228988619171700734389",
"106790489807670152608249704734086421763",
"300058021731226737356344340948466406817"
],
"threshold": 0.9
}
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-50151.json"