Showing error 1836

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


Source:

2564                                scsirate |= syncrate->sxfr & SXFR;
2565                                scsirate |= offset & SOFS;
2566                        }
2567                        if (active) {
2568                                u_int sxfrctl0;
2569
2570                                sxfrctl0 = ahc_inb(ahc, SXFRCTL0);
2571                                sxfrctl0 &= ~FAST20;
2572                                if (tstate->ultraenb & devinfo->target_mask)
2573                                        sxfrctl0 |= FAST20;
2574                                ahc_outb(ahc, SXFRCTL0, sxfrctl0);
2575                        }
2576                }
2577                if (active) {
2578                        ahc_outb(ahc, SCSIRATE, scsirate);
2579                        if ((ahc->features & AHC_ULTRA2) != 0)
2580                                ahc_outb(ahc, SCSIOFFSET, offset);
2581                }
2582
2583                tinfo->scsirate = scsirate;
2584                tinfo->curr.period = period;
2585                tinfo->curr.offset = offset;
2586                tinfo->curr.ppr_options = ppr_options;
2587
2588                ahc_send_async(ahc, devinfo->channel, devinfo->target,
2589                               CAM_LUN_WILDCARD, AC_TRANSFER_NEG);
2590                if (bootverbose) {
2591                        if (offset != 0) {
2592                                printf("%s: target %d synchronous at %sMHz%s, "
2593                                       "offset = 0x%x\n", ahc_name(ahc),
2594                                       devinfo->target, syncrate->rate,
2595                                       (ppr_options & MSG_EXT_PPR_DT_REQ)
2596                                       ? " DT" : "", offset);
2597                        } else {
2598                                printf("%s: target %d using "
2599                                       "asynchronous transfers\n",
2600                                       ahc_name(ahc), devinfo->target);
2601                        }
2602                }
2603        }
2604
Show full sources