dprintk("%s: Memory allocation failure\n", __FUNCTION__); 
dprintk(verbose, DST_CA_ERROR, 1, " Memory allocation failure"); 
static int ca_send_message(struct dst_state *state, struct ca_msg *p_ca_message, void *arg){	int i = 0;	unsigned int ca_message_header_len;	u32 command = 0;	struct ca_msg *hw_buffer;	if ((hw_buffer = (struct ca_msg *) kmalloc(sizeof (struct ca_msg), GFP_KERNEL)) == NULL) {		dprintk("%s: Memory allocation failure\n", __FUNCTION__);		return -ENOMEM;	}	if (verbose > 3)		dprintk("%s\n", __FUNCTION__);	if (copy_from_user(p_ca_message, (void *)arg, sizeof (struct ca_msg)))		return -EFAULT;	if (p_ca_message->msg) {		ca_message_header_len = p_ca_message->length;	/*	Restore it back when you are done	*/		/*	EN50221 tag	*/		command = 0;		for (i = 0; i < 3; i++) {			command = command | p_ca_message->msg[i];			if (i < 2)				command = command << 8;		}		if (verbose > 3)			dprintk("%s:Command=[0x%x]\n", __FUNCTION__, command);		switch (command) {			case CA_PMT:				if (verbose > 3)//					dprintk("Command = SEND_CA_PMT\n");					dprintk("Command = SEND_CA_PMT\n");//				if ((ca_set_pmt(state, p_ca_message, hw_buffer, 0, 0)) < 0) {				if ((ca_set_pmt(state, p_ca_message, hw_buffer, 0, 0)) < 0) {	// code simplification started					dprintk("%s: -->CA_PMT Failed !\n", __FUNCTION__);					return -1;				}				if (verbose > 3)					dprintk("%s: -->CA_PMT Success !\n", __FUNCTION__);//				retval = dummy_set_pmt(state, p_ca_message, hw_buffer, 0, 0);				break;			case CA_PMT_REPLY:				if (verbose > 3)					dprintk("Command = CA_PMT_REPLY\n");				/*      Have to handle the 2 basic types of cards here  */				if ((dst_check_ca_pmt(state, p_ca_message, hw_buffer)) < 0) {					dprintk("%s: -->CA_PMT_REPLY Failed !\n", __FUNCTION__);					return -1;				}				if (verbose > 3)					dprintk("%s: -->CA_PMT_REPLY Success !\n", __FUNCTION__);				/*      Certain boards do behave different ?            *///				retval = ca_set_pmt(state, p_ca_message, hw_buffer, 1, 1);			case CA_APP_INFO_ENQUIRY:		// only for debugging				if (verbose > 3)					dprintk("%s: Getting Cam Application information\n", __FUNCTION__);				if ((ca_get_app_info(state)) < 0) {					dprintk("%s: -->CA_APP_INFO_ENQUIRY Failed !\n", __FUNCTION__);					return -1;				}				if (verbose > 3)					dprintk("%s: -->CA_APP_INFO_ENQUIRY Success !\n", __FUNCTION__);				break;		}	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/a427de6f72bc0d83ebb1d87f9003c5e1009f21cd/dst_ca.c/buggy/drivers/media/dvb/bt8xx/dst_ca.c