In the Linux kernel, the following vulnerability has been resolved:
dmaengine: ti: k3-udma: Reset UDMACHANRT byte counters to prevent overflow
UDMACHANRT*BCNTREG stores the real-time channel bytecount statistics. These registers are 32-bit hardware counters and the driver uses these counters to monitor the operational progress status for a channel, when transferring more than 4GB of data it was observed that these counters overflow and completion calculation of a operation gets affected and the transfer hangs indefinitely.
This commit adds changes to decrease the byte count for every complete transaction so that these registers never overflow and the proper byte count statistics is maintained for ongoing transaction by the RT counters.
Earlier uc->bcnt used to maintain a count of the completed bytes at driver side, since the RT counters maintain the statistics of current transaction now, the maintenance of uc->bcnt is not necessary.
[
{
"digest": {
"length": 411.0,
"function_hash": "56284888459556912624811651356543947905"
},
"deprecated": false,
"id": "CVE-2022-50541-14cea81f",
"target": {
"function": "udma_udma_irq_handler",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a065657643a62a24b4435ddcaea45f1e9378749e"
},
{
"digest": {
"line_hashes": [
"203894327631349099356079589921045630692",
"252507498207211486695386602065412089385",
"275607708871684918730854104036280763306",
"104993150332635462598158134293480314879",
"268121772183252671407434957582409667219",
"323506958750808057432175350043376614076",
"173828241694621183667692492547647337075",
"206983451485593885965154529809600693961",
"3381488156813900247619195897994303888",
"11864873693697694235295165195999854187",
"59612999145294109462870650918499845290",
"327710233853403611321561219154130767129",
"32224779695870515850540788192722812916",
"233291801865985082586703877144892888470",
"153895646217932620563304080744887036058",
"8910262654928999182099362046203026389",
"323552174787328499654734802626187206629",
"264491038373180654937894576693792103120",
"23470002688226565786790293182262230603",
"174579445676714016538563898628691272688",
"162066626162744353265133444544013924960",
"77156557851432907045531585835331079758",
"42024753071048734204846421899870781197",
"271326815884895324290572111769720510104",
"322541521576605607608834081806625532555",
"147298310749285681741465413074728371505",
"218372623582969524397658661708346586876"
],
"threshold": 0.9
},
"deprecated": false,
"id": "CVE-2022-50541-159cfa29",
"target": {
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d68da10b0cceb4177b653833e794b2923a4ffbd7"
},
{
"digest": {
"length": 1008.0,
"function_hash": "154051531378866508742082121000955247538"
},
"deprecated": false,
"id": "CVE-2022-50541-18f519eb",
"target": {
"function": "udma_ring_irq_handler",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d68da10b0cceb4177b653833e794b2923a4ffbd7"
},
{
"digest": {
"length": 1008.0,
"function_hash": "154051531378866508742082121000955247538"
},
"deprecated": false,
"id": "CVE-2022-50541-24c5a1a9",
"target": {
"function": "udma_ring_irq_handler",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7c94dcfa8fcff2dba53915f1dabfee49a3df8b88"
},
{
"digest": {
"length": 1437.0,
"function_hash": "229119258713107000405488462345508980121"
},
"deprecated": false,
"id": "CVE-2022-50541-33798325",
"target": {
"function": "udma_tx_status",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e0b16bfbd3a4a8d09614046335f4482313e7c0c4"
},
{
"digest": {
"length": 1008.0,
"function_hash": "154051531378866508742082121000955247538"
},
"deprecated": false,
"id": "CVE-2022-50541-3b399cd5",
"target": {
"function": "udma_ring_irq_handler",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a065657643a62a24b4435ddcaea45f1e9378749e"
},
{
"digest": {
"line_hashes": [
"203894327631349099356079589921045630692",
"252507498207211486695386602065412089385",
"275607708871684918730854104036280763306",
"104993150332635462598158134293480314879",
"268121772183252671407434957582409667219",
"323506958750808057432175350043376614076",
"173828241694621183667692492547647337075",
"206983451485593885965154529809600693961",
"3381488156813900247619195897994303888",
"11864873693697694235295165195999854187",
"59612999145294109462870650918499845290",
"327710233853403611321561219154130767129",
"32224779695870515850540788192722812916",
"233291801865985082586703877144892888470",
"153895646217932620563304080744887036058",
"8910262654928999182099362046203026389",
"323552174787328499654734802626187206629",
"264491038373180654937894576693792103120",
"23470002688226565786790293182262230603",
"174579445676714016538563898628691272688",
"162066626162744353265133444544013924960",
"77156557851432907045531585835331079758",
"42024753071048734204846421899870781197",
"271326815884895324290572111769720510104",
"322541521576605607608834081806625532555",
"147298310749285681741465413074728371505",
"218372623582969524397658661708346586876"
],
"threshold": 0.9
},
"deprecated": false,
"id": "CVE-2022-50541-4c10c6d6",
"target": {
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7c94dcfa8fcff2dba53915f1dabfee49a3df8b88"
},
{
"digest": {
"length": 411.0,
"function_hash": "56284888459556912624811651356543947905"
},
"deprecated": false,
"id": "CVE-2022-50541-4edd8c85",
"target": {
"function": "udma_udma_irq_handler",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e0b16bfbd3a4a8d09614046335f4482313e7c0c4"
},
{
"digest": {
"line_hashes": [
"203894327631349099356079589921045630692",
"252507498207211486695386602065412089385",
"275607708871684918730854104036280763306",
"104993150332635462598158134293480314879",
"268121772183252671407434957582409667219",
"323506958750808057432175350043376614076",
"173828241694621183667692492547647337075",
"206983451485593885965154529809600693961",
"3381488156813900247619195897994303888",
"11864873693697694235295165195999854187",
"59612999145294109462870650918499845290",
"327710233853403611321561219154130767129",
"32224779695870515850540788192722812916",
"233291801865985082586703877144892888470",
"153895646217932620563304080744887036058",
"8910262654928999182099362046203026389",
"323552174787328499654734802626187206629",
"264491038373180654937894576693792103120",
"23470002688226565786790293182262230603",
"174579445676714016538563898628691272688",
"162066626162744353265133444544013924960",
"77156557851432907045531585835331079758",
"42024753071048734204846421899870781197",
"271326815884895324290572111769720510104",
"322541521576605607608834081806625532555",
"147298310749285681741465413074728371505",
"218372623582969524397658661708346586876"
],
"threshold": 0.9
},
"deprecated": false,
"id": "CVE-2022-50541-60699224",
"target": {
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e0b16bfbd3a4a8d09614046335f4482313e7c0c4"
},
{
"digest": {
"length": 995.0,
"function_hash": "202037852731753615008131209724011548596"
},
"deprecated": false,
"id": "CVE-2022-50541-68f822dd",
"target": {
"function": "udma_reset_counters",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e0b16bfbd3a4a8d09614046335f4482313e7c0c4"
},
{
"digest": {
"length": 1437.0,
"function_hash": "229119258713107000405488462345508980121"
},
"deprecated": false,
"id": "CVE-2022-50541-6a934a8e",
"target": {
"function": "udma_tx_status",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a065657643a62a24b4435ddcaea45f1e9378749e"
},
{
"digest": {
"line_hashes": [
"203894327631349099356079589921045630692",
"252507498207211486695386602065412089385",
"275607708871684918730854104036280763306",
"104993150332635462598158134293480314879",
"268121772183252671407434957582409667219",
"323506958750808057432175350043376614076",
"173828241694621183667692492547647337075",
"206983451485593885965154529809600693961",
"3381488156813900247619195897994303888",
"11864873693697694235295165195999854187",
"59612999145294109462870650918499845290",
"327710233853403611321561219154130767129",
"32224779695870515850540788192722812916",
"233291801865985082586703877144892888470",
"153895646217932620563304080744887036058",
"8910262654928999182099362046203026389",
"323552174787328499654734802626187206629",
"264491038373180654937894576693792103120",
"23470002688226565786790293182262230603",
"174579445676714016538563898628691272688",
"162066626162744353265133444544013924960",
"77156557851432907045531585835331079758",
"42024753071048734204846421899870781197",
"271326815884895324290572111769720510104",
"322541521576605607608834081806625532555",
"147298310749285681741465413074728371505",
"218372623582969524397658661708346586876"
],
"threshold": 0.9
},
"deprecated": false,
"id": "CVE-2022-50541-6b42aa43",
"target": {
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a065657643a62a24b4435ddcaea45f1e9378749e"
},
{
"digest": {
"length": 995.0,
"function_hash": "202037852731753615008131209724011548596"
},
"deprecated": false,
"id": "CVE-2022-50541-769eb091",
"target": {
"function": "udma_reset_counters",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d68da10b0cceb4177b653833e794b2923a4ffbd7"
},
{
"digest": {
"length": 995.0,
"function_hash": "202037852731753615008131209724011548596"
},
"deprecated": false,
"id": "CVE-2022-50541-99cde6fd",
"target": {
"function": "udma_reset_counters",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7c94dcfa8fcff2dba53915f1dabfee49a3df8b88"
},
{
"digest": {
"length": 1008.0,
"function_hash": "154051531378866508742082121000955247538"
},
"deprecated": false,
"id": "CVE-2022-50541-aec48b41",
"target": {
"function": "udma_ring_irq_handler",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e0b16bfbd3a4a8d09614046335f4482313e7c0c4"
},
{
"digest": {
"length": 411.0,
"function_hash": "56284888459556912624811651356543947905"
},
"deprecated": false,
"id": "CVE-2022-50541-af7ba64c",
"target": {
"function": "udma_udma_irq_handler",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d68da10b0cceb4177b653833e794b2923a4ffbd7"
},
{
"digest": {
"length": 783.0,
"function_hash": "323433204033204725142105570751774530371"
},
"deprecated": false,
"id": "CVE-2022-50541-b54bb0ee",
"target": {
"function": "udma_check_tx_completion",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e0b16bfbd3a4a8d09614046335f4482313e7c0c4"
},
{
"digest": {
"length": 411.0,
"function_hash": "56284888459556912624811651356543947905"
},
"deprecated": false,
"id": "CVE-2022-50541-b595d16f",
"target": {
"function": "udma_udma_irq_handler",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7c94dcfa8fcff2dba53915f1dabfee49a3df8b88"
},
{
"digest": {
"length": 783.0,
"function_hash": "323433204033204725142105570751774530371"
},
"deprecated": false,
"id": "CVE-2022-50541-c1c1a29d",
"target": {
"function": "udma_check_tx_completion",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7c94dcfa8fcff2dba53915f1dabfee49a3df8b88"
},
{
"digest": {
"length": 995.0,
"function_hash": "202037852731753615008131209724011548596"
},
"deprecated": false,
"id": "CVE-2022-50541-c584bcf8",
"target": {
"function": "udma_reset_counters",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a065657643a62a24b4435ddcaea45f1e9378749e"
},
{
"digest": {
"length": 783.0,
"function_hash": "323433204033204725142105570751774530371"
},
"deprecated": false,
"id": "CVE-2022-50541-c7d68246",
"target": {
"function": "udma_check_tx_completion",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a065657643a62a24b4435ddcaea45f1e9378749e"
},
{
"digest": {
"length": 1437.0,
"function_hash": "229119258713107000405488462345508980121"
},
"deprecated": false,
"id": "CVE-2022-50541-de4318b2",
"target": {
"function": "udma_tx_status",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7c94dcfa8fcff2dba53915f1dabfee49a3df8b88"
},
{
"digest": {
"length": 783.0,
"function_hash": "323433204033204725142105570751774530371"
},
"deprecated": false,
"id": "CVE-2022-50541-f4844fcd",
"target": {
"function": "udma_check_tx_completion",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d68da10b0cceb4177b653833e794b2923a4ffbd7"
},
{
"digest": {
"length": 1437.0,
"function_hash": "229119258713107000405488462345508980121"
},
"deprecated": false,
"id": "CVE-2022-50541-f571dae8",
"target": {
"function": "udma_tx_status",
"file": "drivers/dma/ti/k3-udma.c"
},
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d68da10b0cceb4177b653833e794b2923a4ffbd7"
}
]