Discussion:
[coreboot] New Defects reported by Coverity Scan for coreboot
s***@coverity.com
2018-11-02 14:33:56 UTC
Permalink
Hi,

Please find the latest report on new defect(s) introduced to coreboot found with Coverity Scan.

1 new defect(s) introduced to coreboot found with Coverity Scan.
1 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.

New defect(s) Reported-by: Coverity Scan
Showing 1 of 1 defect(s)


** CID 1396558: Control flow issues (MISSING_BREAK)
/src/mainboard/google/poppy/variants/nami/mainboard.c: 238 in variant_devtree_update()


________________________________________________________________________________________________________
*** CID 1396558: Control flow issues (MISSING_BREAK)
/src/mainboard/google/poppy/variants/nami/mainboard.c: 238 in variant_devtree_update()
232 switch (sku_id) {
CID 1396558: Control flow issues (MISSING_BREAK)
The case for value "179296U" is not terminated by a 'break' statement.
238 case SKU_3_SYNDRA:
239 pl2_id = PL2_ID_SONA_SYNDRA;
240 case SKU_0_VAYNE:
241 case SKU_1_VAYNE:
242 case SKU_2_VAYNE:
243 case SKU_0_PANTHEON:


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRbLuoVetFLSjdonCi1EjfHRqWGQvojmmkYaBE-2BPJiTQvQ-3D-3D_q4bX76XMySz3BXBlWr5fXXJ4cvAsgEXEqC7dBPM7O5Y3GF4hLF1-2Fhmf3a8scGXsMbL59oQeIcfo713ImKVkdfZctKNZGZwF-2Fuv3UJIwyz4IY-2FblCtz-2Bu3Prw458XqMzCPgvF6DUWOY84mHzG63zylHGuN8H8Yow0PfA6agmE2xIPGMxVcSN2yhCqMWF23WWtQfNnaEGcaKtXtT6g9Xwd472l5dPJ8XF6Uqch2zmWUbs-3D
--
coreboot mailing list: ***@coreboot.org
https://mail.coreboot.org/mailman/listinfo/coreboot
s***@coverity.com
2018-11-06 14:41:09 UTC
Permalink
Hi,

Please find the latest report on new defect(s) introduced to coreboot found with Coverity Scan.

6 new defect(s) introduced to coreboot found with Coverity Scan.


New defect(s) Reported-by: Coverity Scan
Showing 6 of 6 defect(s)


** CID 1396579: (STRAY_SEMICOLON)
/src/soc/mediatek/mt8183/auxadc.c: 46 in auxadc_get_rawdata()
/src/soc/mediatek/mt8183/auxadc.c: 49 in auxadc_get_rawdata()
/src/soc/mediatek/mt8183/auxadc.c: 53 in auxadc_get_rawdata()


________________________________________________________________________________________________________
*** CID 1396579: (STRAY_SEMICOLON)
/src/soc/mediatek/mt8183/auxadc.c: 46 in auxadc_get_rawdata()
40 assert(!expired); \
41 })
42
43 static uint32_t auxadc_get_rawdata(int channel)
44 {
45 setbits_le32(&mt8183_infracfg->module_sw_cg_1_clr, 1 << 10);
CID 1396579: (STRAY_SEMICOLON)
A "while" statement with no block followed by a stand-alone block is suspicious.
46 wait_ms(!(read32(&mtk_auxadc->con2) & 0x1), 300);
47
48 clrbits_le32(&mtk_auxadc->con1, 1 << channel);
49 wait_ms(!(read32(&mtk_auxadc->data[channel]) & (1 << 12)), 300);
50
51 setbits_le32(&mtk_auxadc->con1, 1 << channel);
/src/soc/mediatek/mt8183/auxadc.c: 49 in auxadc_get_rawdata()
43 static uint32_t auxadc_get_rawdata(int channel)
44 {
45 setbits_le32(&mt8183_infracfg->module_sw_cg_1_clr, 1 << 10);
46 wait_ms(!(read32(&mtk_auxadc->con2) & 0x1), 300);
47
48 clrbits_le32(&mtk_auxadc->con1, 1 << channel);
CID 1396579: (STRAY_SEMICOLON)
A "while" statement with no block followed by a stand-alone block is suspicious.
49 wait_ms(!(read32(&mtk_auxadc->data[channel]) & (1 << 12)), 300);
50
51 setbits_le32(&mtk_auxadc->con1, 1 << channel);
52 udelay(25);
53 wait_ms(read32(&mtk_auxadc->data[channel]) & (1 << 12), 300);
54
/src/soc/mediatek/mt8183/auxadc.c: 53 in auxadc_get_rawdata()
47
48 clrbits_le32(&mtk_auxadc->con1, 1 << channel);
49 wait_ms(!(read32(&mtk_auxadc->data[channel]) & (1 << 12)), 300);
50
51 setbits_le32(&mtk_auxadc->con1, 1 << channel);
52 udelay(25);
CID 1396579: (STRAY_SEMICOLON)
A "while" statement with no block followed by a stand-alone block is suspicious.
53 wait_ms(read32(&mtk_auxadc->data[channel]) & (1 << 12), 300);
54
55 uint32_t value = read32(&mtk_auxadc->data[channel]) & 0x0FFF;
56
57 setbits_le32(&mt8183_infracfg->module_sw_cg_1_set, 1 << 10);
58

** CID 1396578: (UNINIT)
/src/arch/riscv/trap_handler.c: 98 in interrupt_handler()
/src/arch/riscv/trap_handler.c: 100 in interrupt_handler()
/src/arch/riscv/trap_handler.c: 102 in interrupt_handler()
/src/arch/riscv/trap_handler.c: 104 in interrupt_handler()
/src/arch/riscv/trap_handler.c: 106 in interrupt_handler()
/src/arch/riscv/trap_handler.c: 107 in interrupt_handler()


________________________________________________________________________________________________________
*** CID 1396578: (UNINIT)
/src/arch/riscv/trap_handler.c: 98 in interrupt_handler()
92
93 clear_csr(mie, MIP_MTIP);
94 set_csr(mip, MIP_STIP);
95
96 break;
CID 1396578: (UNINIT)
Using uninitialized value "sp".
98 if (HLS()->ipi_pending & IPI_SOFT) {
99 set_csr(mip, MIP_SSIP);
100 } else if (HLS()->ipi_pending & IPI_FENCE_I) {
101 asm volatile("fence.i");
102 } else if (HLS()->ipi_pending & IPI_SFENCE_VMA) {
103 asm volatile("sfence.vma");
/src/arch/riscv/trap_handler.c: 100 in interrupt_handler()
94 set_csr(mip, MIP_STIP);
95
96 break;
97 case IRQ_M_SOFT:
98 if (HLS()->ipi_pending & IPI_SOFT) {
99 set_csr(mip, MIP_SSIP);
CID 1396578: (UNINIT)
Using uninitialized value "sp".
100 } else if (HLS()->ipi_pending & IPI_FENCE_I) {
101 asm volatile("fence.i");
102 } else if (HLS()->ipi_pending & IPI_SFENCE_VMA) {
103 asm volatile("sfence.vma");
104 } else if (HLS()->ipi_pending & IPI_SFENCE_VMA_ASID) {
105 asm volatile("sfence.vma");
/src/arch/riscv/trap_handler.c: 102 in interrupt_handler()
96 break;
97 case IRQ_M_SOFT:
98 if (HLS()->ipi_pending & IPI_SOFT) {
99 set_csr(mip, MIP_SSIP);
100 } else if (HLS()->ipi_pending & IPI_FENCE_I) {
101 asm volatile("fence.i");
CID 1396578: (UNINIT)
Using uninitialized value "sp".
102 } else if (HLS()->ipi_pending & IPI_SFENCE_VMA) {
103 asm volatile("sfence.vma");
104 } else if (HLS()->ipi_pending & IPI_SFENCE_VMA_ASID) {
105 asm volatile("sfence.vma");
106 } else if (HLS()->ipi_pending & IPI_SHUTDOWN) {
107 while (HLS()->ipi_pending & IPI_SHUTDOWN)
/src/arch/riscv/trap_handler.c: 104 in interrupt_handler()
98 if (HLS()->ipi_pending & IPI_SOFT) {
99 set_csr(mip, MIP_SSIP);
100 } else if (HLS()->ipi_pending & IPI_FENCE_I) {
101 asm volatile("fence.i");
102 } else if (HLS()->ipi_pending & IPI_SFENCE_VMA) {
103 asm volatile("sfence.vma");
CID 1396578: (UNINIT)
Using uninitialized value "sp".
104 } else if (HLS()->ipi_pending & IPI_SFENCE_VMA_ASID) {
105 asm volatile("sfence.vma");
106 } else if (HLS()->ipi_pending & IPI_SHUTDOWN) {
107 while (HLS()->ipi_pending & IPI_SHUTDOWN)
108 asm volatile("wfi");
109 }
/src/arch/riscv/trap_handler.c: 106 in interrupt_handler()
100 } else if (HLS()->ipi_pending & IPI_FENCE_I) {
101 asm volatile("fence.i");
102 } else if (HLS()->ipi_pending & IPI_SFENCE_VMA) {
103 asm volatile("sfence.vma");
104 } else if (HLS()->ipi_pending & IPI_SFENCE_VMA_ASID) {
105 asm volatile("sfence.vma");
CID 1396578: (UNINIT)
Using uninitialized value "sp".
106 } else if (HLS()->ipi_pending & IPI_SHUTDOWN) {
107 while (HLS()->ipi_pending & IPI_SHUTDOWN)
108 asm volatile("wfi");
109 }
110 break;
111 default:
/src/arch/riscv/trap_handler.c: 107 in interrupt_handler()
101 asm volatile("fence.i");
102 } else if (HLS()->ipi_pending & IPI_SFENCE_VMA) {
103 asm volatile("sfence.vma");
104 } else if (HLS()->ipi_pending & IPI_SFENCE_VMA_ASID) {
105 asm volatile("sfence.vma");
106 } else if (HLS()->ipi_pending & IPI_SHUTDOWN) {
CID 1396578: (UNINIT)
Using uninitialized value "sp".
107 while (HLS()->ipi_pending & IPI_SHUTDOWN)
108 asm volatile("wfi");
109 }
110 break;
111 default:
112 printk(BIOS_EMERG, "======================================\n");

** CID 1396577: (UNINIT)
/src/arch/riscv/smp.c: 35 in smp_pause()
/src/arch/riscv/smp.c: 41 in smp_pause()
/src/arch/riscv/smp.c: 48 in smp_pause()
/src/arch/riscv/smp.c: 52 in smp_pause()
/src/arch/riscv/smp.c: 53 in smp_pause()
/src/arch/riscv/smp.c: 58 in smp_pause()
/src/arch/riscv/smp.c: 61 in smp_pause()
/src/arch/riscv/smp.c: 62 in smp_pause()


________________________________________________________________________________________________________
*** CID 1396577: (UNINIT)
/src/arch/riscv/smp.c: 35 in smp_pause()
29 int hartid = read_csr(mhartid);
30
31 if (hartid != working_hartid) {
32 /* waiting for work hart */
33 do {
34 barrier();
CID 1396577: (UNINIT)
Using uninitialized value "sp".
35 } while (SYNCA != 0x01234567);
36
37 clear_csr(mstatus, MSTATUS_MIE);
38 write_csr(mie, MIP_MSIP);
39
40 /* count how many cores enter the halt */
/src/arch/riscv/smp.c: 41 in smp_pause()
35 } while (SYNCA != 0x01234567);
36
37 clear_csr(mstatus, MSTATUS_MIE);
38 write_csr(mie, MIP_MSIP);
39
40 /* count how many cores enter the halt */
CID 1396577: (UNINIT)
Using uninitialized value "sp".
41 __sync_fetch_and_add(&SYNCB, 1);
42
43 do {
44 barrier();
45 __asm__ volatile ("wfi");
46 } while ((read_csr(mip) & MIP_MSIP) == 0);
/src/arch/riscv/smp.c: 48 in smp_pause()
42
43 do {
44 barrier();
45 __asm__ volatile ("wfi");
46 } while ((read_csr(mip) & MIP_MSIP) == 0);
47 set_msip(hartid, 0);
CID 1396577: (UNINIT)
Using uninitialized value "sp".
48 HLS()->entry.fn(HLS()->entry.arg);
49 } else {
50 /* Initialize the counter and
51 * mark the work hart into smp_pause */
52 SYNCB = 0;
53 SYNCA = 0x01234567;
/src/arch/riscv/smp.c: 52 in smp_pause()
46 } while ((read_csr(mip) & MIP_MSIP) == 0);
47 set_msip(hartid, 0);
48 HLS()->entry.fn(HLS()->entry.arg);
49 } else {
50 /* Initialize the counter and
51 * mark the work hart into smp_pause */
CID 1396577: (UNINIT)
Using uninitialized value "sp".
52 SYNCB = 0;
53 SYNCA = 0x01234567;
54
55 /* waiting for other Hart to enter the halt */
56 do {
57 barrier();
/src/arch/riscv/smp.c: 53 in smp_pause()
47 set_msip(hartid, 0);
48 HLS()->entry.fn(HLS()->entry.arg);
49 } else {
50 /* Initialize the counter and
51 * mark the work hart into smp_pause */
52 SYNCB = 0;
CID 1396577: (UNINIT)
Using uninitialized value "sp".
53 SYNCA = 0x01234567;
54
55 /* waiting for other Hart to enter the halt */
56 do {
57 barrier();
58 } while (SYNCB + 1 < CONFIG_RISCV_HART_NUM);
/src/arch/riscv/smp.c: 58 in smp_pause()
52 SYNCB = 0;
53 SYNCA = 0x01234567;
54
55 /* waiting for other Hart to enter the halt */
56 do {
57 barrier();
CID 1396577: (UNINIT)
Using uninitialized value "sp".
58 } while (SYNCB + 1 < CONFIG_RISCV_HART_NUM);
59
60 /* initialize for the next call */
61 SYNCA = 0;
62 SYNCB = 0;
63 }
/src/arch/riscv/smp.c: 61 in smp_pause()
55 /* waiting for other Hart to enter the halt */
56 do {
57 barrier();
58 } while (SYNCB + 1 < CONFIG_RISCV_HART_NUM);
59
60 /* initialize for the next call */
CID 1396577: (UNINIT)
Using uninitialized value "sp".
61 SYNCA = 0;
62 SYNCB = 0;
63 }
64 #undef SYNCA
65 #undef SYNCB
66 }
/src/arch/riscv/smp.c: 62 in smp_pause()
56 do {
57 barrier();
58 } while (SYNCB + 1 < CONFIG_RISCV_HART_NUM);
59
60 /* initialize for the next call */
61 SYNCA = 0;
CID 1396577: (UNINIT)
Using uninitialized value "sp".
62 SYNCB = 0;
63 }
64 #undef SYNCA
65 #undef SYNCB
66 }
67

** CID 1396576: (UNINIT)
/src/arch/riscv/smp.c: 76 in smp_resume()
/src/arch/riscv/smp.c: 77 in smp_resume()
/src/arch/riscv/smp.c: 84 in smp_resume()


________________________________________________________________________________________________________
*** CID 1396576: (UNINIT)
/src/arch/riscv/smp.c: 76 in smp_resume()
70 int hartid = read_csr(mhartid);
71
72 if (fn == NULL)
73 die("must pass a non-null function pointer\n");
74
75 for (int i = 0; i < CONFIG_RISCV_HART_NUM; i++) {
CID 1396576: (UNINIT)
Using uninitialized value "sp".
76 OTHER_HLS(i)->entry.fn = fn;
77 OTHER_HLS(i)->entry.arg = arg;
78 }
79
80 for (int i = 0; i < CONFIG_RISCV_HART_NUM; i++)
81 if (i != hartid)
82 set_msip(i, 1);
83
84 HLS()->entry.fn(HLS()->entry.arg);
/src/arch/riscv/smp.c: 77 in smp_resume()
71
72 if (fn == NULL)
73 die("must pass a non-null function pointer\n");
74
75 for (int i = 0; i < CONFIG_RISCV_HART_NUM; i++) {
76 OTHER_HLS(i)->entry.fn = fn;
CID 1396576: (UNINIT)
Using uninitialized value "sp".
77 OTHER_HLS(i)->entry.arg = arg;
78 }
79
80 for (int i = 0; i < CONFIG_RISCV_HART_NUM; i++)
81 if (i != hartid)
82 set_msip(i, 1);
83
84 HLS()->entry.fn(HLS()->entry.arg);
/src/arch/riscv/smp.c: 84 in smp_resume()
78 }
79
80 for (int i = 0; i < CONFIG_RISCV_HART_NUM; i++)
81 if (i != hartid)
82 set_msip(i, 1);
83
CID 1396576: (UNINIT)
Using uninitialized value "sp".
84 HLS()->entry.fn(HLS()->entry.arg);

** CID 1396575: Uninitialized variables (UNINIT)
/src/arch/riscv/sbi.c: 44 in sbi_set_timer()


________________________________________________________________________________________________________
*** CID 1396575: Uninitialized variables (UNINIT)
/src/arch/riscv/sbi.c: 44 in sbi_set_timer()
38 }
39
40 static uintptr_t sbi_set_timer(uint64_t when)
41 {
42 clear_csr(mip, MIP_STIP);
43 set_csr(mie, MIP_MTIP);
CID 1396575: Uninitialized variables (UNINIT)
Using uninitialized value "sp".
44 *(HLS()->timecmp) = when;
45 return 0;
46 }
47
48 #if IS_ENABLED(CONFIG_CONSOLE_SERIAL)
49 static uintptr_t sbi_console_putchar(uint8_t ch)

** CID 1396574: Uninitialized variables (UNINIT)
/src/arch/riscv/sbi.c: 31 in send_ipi()


________________________________________________________________________________________________________
*** CID 1396574: Uninitialized variables (UNINIT)
/src/arch/riscv/sbi.c: 31 in send_ipi()
25
26 static uintptr_t send_ipi(uintptr_t *pmask, intptr_t type)
27 {
28 uintptr_t mask = mprv_read_uintptr_t(pmask);
29 for (int i = 0; mask; i++) {
30 if (mask & 1) {
CID 1396574: Uninitialized variables (UNINIT)
Using uninitialized value "sp".
31 OTHER_HLS(i)->ipi_pending |= type;
32 /* send soft interrupt to target hart */
33 set_msip(i, 1);
34 }
35 mask = mask >> 1;
36 }


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRbLuoVetFLSjdonCi1EjfHRqWGQvojmmkYaBE-2BPJiTQvQ-3D-3D_q4bX76XMySz3BXBlWr5fXXJ4cvAsgEXEqC7dBPM7O5a31m51VEsEaxFt1YGbyr6wNWh1JRkzG6iEWnu4wa11R6V6bq3pvRdnRMNLGWgttGAab8saZW-2BgimLNQFi615pGDzotKysOu2G2J4DGnZTtorDLvESCDRCTODv3O77-2B7n1VYt5e-2BYXktmH9OM-2FL42YRQ224IXfqqi-2BMUaEbYo2-2F2Afr5Jd9JHIIEpLZPsm1PcE-3D
--
coreboot mailing list: ***@coreboot.org
https://mail.coreboot.org/mailman/listinfo/coreboot
Loading...