Showing error 1790

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


Source:

1336                if (status & MISCSTATUS_CTS_LATCHED)
1337                {
1338                        if ((info->cts_chkcount)++ >= IO_PIN_SHUTDOWN_LIMIT)
1339                                usc_DisablestatusIrqs(info,SICR_CTS);
1340                        icount->cts++;
1341                        if ( status & MISCSTATUS_CTS )
1342                                info->input_signal_events.cts_up++;
1343                        else
1344                                info->input_signal_events.cts_down++;
1345                }
1346                wake_up_interruptible(&info->status_event_wait_q);
1347                wake_up_interruptible(&info->event_wait_q);
1348
1349                if ( (info->port.flags & ASYNC_CHECK_CD) && 
1350                     (status & MISCSTATUS_DCD_LATCHED) ) {
1351                        if ( debug_level >= DEBUG_LEVEL_ISR )
1352                                printk("%s CD now %s...", info->device_name,
1353                                       (status & MISCSTATUS_DCD) ? "on" : "off");
1354                        if (status & MISCSTATUS_DCD)
1355                                wake_up_interruptible(&info->port.open_wait);
1356                        else {
1357                                if ( debug_level >= DEBUG_LEVEL_ISR )
1358                                        printk("doing serial hangup...");
1359                                if (info->port.tty)
1360                                        tty_hangup(info->port.tty);
1361                        }
1362                }
1363        
1364                if ( (info->port.flags & ASYNC_CTS_FLOW) && 
1365                     (status & MISCSTATUS_CTS_LATCHED) ) {
1366                        if (info->port.tty->hw_stopped) {
1367                                if (status & MISCSTATUS_CTS) {
1368                                        if ( debug_level >= DEBUG_LEVEL_ISR )
1369                                                printk("CTS tx start...");
1370                                        if (info->port.tty)
1371                                                info->port.tty->hw_stopped = 0;
1372                                        usc_start_transmitter(info);
1373                                        info->pending_bh |= BH_TRANSMIT;
1374                                        return;
1375                                }
1376                        } else {
Show full sources