Showing error 1636

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: drivers/media/common/tuners/xc5000.c
Line in file: 976
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-10 07:54:05 UTC


Source:

 946        .set_params           = xc5000_set_params,
 947        .set_analog_params = xc5000_set_analog_params,
 948        .get_frequency           = xc5000_get_frequency,
 949        .get_bandwidth           = xc5000_get_bandwidth,
 950        .get_status           = xc5000_get_status
 951};
 952
 953struct dvb_frontend *xc5000_attach(struct dvb_frontend *fe,
 954                                   struct i2c_adapter *i2c,
 955                                   struct xc5000_config *cfg)
 956{
 957        struct xc5000_priv *priv = NULL;
 958        int instance;
 959        u16 id = 0;
 960
 961        dprintk(1, "%s(%d-%04x)\n", __func__,
 962                i2c ? i2c_adapter_id(i2c) : -1,
 963                cfg ? cfg->i2c_address : -1);
 964
 965        mutex_lock(&xc5000_list_mutex);
 966
 967        instance = hybrid_tuner_request_state(struct xc5000_priv, priv,
 968                                              hybrid_tuner_instance_list,
 969                                              i2c, cfg->i2c_address, "xc5000");
 970        switch (instance) {
 971        case 0:
 972                goto fail;
 973                break;
 974        case 1:
 975                /* new tuner instance */
 976                priv->bandwidth = BANDWIDTH_6_MHZ;
 977                priv->if_khz = cfg->if_khz;
 978
 979                fe->tuner_priv = priv;
 980                break;
 981        default:
 982                /* existing tuner instance */
 983                fe->tuner_priv = priv;
 984                break;
 985        }
 986
Show full sources