 if (feed->descramble) { up(&demux->mutex); return -ENOSYS; } 
static int dmx_ts_feed_set (struct dmx_ts_feed* ts_feed, u16 pid, int ts_type,		     enum dmx_ts_pes pes_type, size_t callback_length,		     size_t circular_buffer_size, int descramble,		     struct timespec timeout){	struct dvb_demux_feed *feed = (struct dvb_demux_feed *) ts_feed;	struct dvb_demux *demux = feed->demux;	if (pid > DMX_MAX_PID)		return -EINVAL;	if (down_interruptible (&demux->mutex))		return -ERESTARTSYS;	if (ts_type & TS_DECODER) {		if (pes_type >= DMX_TS_PES_OTHER) {			up(&demux->mutex);			return -EINVAL;		}		if (demux->pesfilter[pes_type] &&		    demux->pesfilter[pes_type] != feed) {			up(&demux->mutex);			return -EINVAL;		}		demux->pesfilter[pes_type] = feed;		demux->pids[pes_type] = pid;	}	dvb_demux_feed_add(feed);	feed->pid = pid;	feed->buffer_size = circular_buffer_size;	feed->descramble = descramble;	feed->timeout = timeout;	feed->cb_length = callback_length;	feed->ts_type = ts_type;	feed->pes_type = pes_type;	if (feed->descramble) {		up(&demux->mutex);		return -ENOSYS;	}	if (feed->buffer_size) {#ifdef NOBUFS		feed->buffer=NULL;#else		feed->buffer = vmalloc(feed->buffer_size);		if (!feed->buffer) {			up(&demux->mutex);			return -ENOMEM;		}#endif	}	feed->state = DMX_STATE_READY;	up(&demux->mutex);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/5d2cd1631e97f5eb9c8666ff9cd8011cd5c12e7d/dvb_demux.c/buggy/drivers/media/dvb/dvb-core/dvb_demux.c