Showing error 1864

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: drivers/video/sis/sis_main.c
Line in file: 4481
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-11 08:47:26 UTC


Source:

4451        v1 = 0xf6; v2 = 0x0d; v3 = 0x00;
4452        if(bios) {
4453                v1 = bios[0xe8];
4454                v2 = bios[0xe9];
4455                v3 = bios[0xea];
4456        }
4457        outSISIDXREG(SISSR, 0x23, v1);
4458        outSISIDXREG(SISSR, 0x24, v2);
4459        outSISIDXREG(SISSR, 0x25, v3);
4460        outSISIDXREG(SISSR, 0x21, 0x84);
4461        outSISIDXREG(SISSR, 0x22, 0x00);
4462        outSISIDXREG(SISCR, 0x37, 0x00);
4463        orSISIDXREG(SISPART1, 0x24, 0x01);   /* unlock crt2 */
4464        outSISIDXREG(SISPART1, 0x00, 0x00);
4465        v1 = 0x40; v2 = 0x11;
4466        if(bios) {
4467                v1 = bios[0xec];
4468                v2 = bios[0xeb];
4469        }
4470        outSISIDXREG(SISPART1, 0x02, v1);
4471
4472        if(ivideo->revision_id >= 0x80)
4473                v2 &= ~0x01;
4474
4475        inSISIDXREG(SISPART4, 0x00, reg);
4476        if((reg == 1) || (reg == 2)) {
4477                outSISIDXREG(SISCR, 0x37, 0x02);
4478                outSISIDXREG(SISPART2, 0x00, 0x1c);
4479                v4 = 0x00; v5 = 0x00; v6 = 0x10;
4480                if(ivideo->SiS_Pr.UseROM) {
4481                        v4 = bios[0xf5];
4482                        v5 = bios[0xf6];
4483                        v6 = bios[0xf7];
4484                }
4485                outSISIDXREG(SISPART4, 0x0d, v4);
4486                outSISIDXREG(SISPART4, 0x0e, v5);
4487                outSISIDXREG(SISPART4, 0x10, v6);
4488                outSISIDXREG(SISPART4, 0x0f, 0x3f);
4489                inSISIDXREG(SISPART4, 0x01, reg);
4490                if(reg >= 0xb0) {
4491                        inSISIDXREG(SISPART4, 0x23, reg);
Show full sources