(volatile u8) notify->type = notify_type; 
notify->type = notify_type; 
xpc_send_msg(struct xpc_channel *ch, struct xpc_msg *msg, u8 notify_type,			xpc_notify_func func, void *key){	enum xpc_retval ret = xpcSuccess;	struct xpc_notify *notify = NULL;   // >>> to keep the compiler happy!!	s64 put, msg_number = msg->number;	DBUG_ON(notify_type == XPC_N_CALL && func == NULL);	DBUG_ON((((u64) msg - (u64) ch->local_msgqueue) / ch->msg_size) !=					msg_number % ch->local_nentries);	DBUG_ON(msg->flags & XPC_M_READY);	if (ch->flags & XPC_C_DISCONNECTING) {		/* drop the reference grabbed in xpc_allocate_msg() */		xpc_msgqueue_deref(ch);		return ch->reason;	}	if (notify_type != 0) {		/*		 * Tell the remote side to send an ACK interrupt when the		 * message has been delivered.		 */		msg->flags |= XPC_M_INTERRUPT;		atomic_inc(&ch->n_to_notify);		notify = &ch->notify_queue[msg_number % ch->local_nentries];		notify->func = func;		notify->key = key;		(volatile u8) notify->type = notify_type;		// >>> is a mb() needed here?		if (ch->flags & XPC_C_DISCONNECTING) {			/*			 * An error occurred between our last error check and			 * this one. We will try to clear the type field from			 * the notify entry. If we succeed then			 * xpc_disconnect_channel() didn't already process			 * the notify entry.			 */			if (cmpxchg(&notify->type, notify_type, 0) ==								notify_type) {				atomic_dec(&ch->n_to_notify);				ret = ch->reason;			}			/* drop the reference grabbed in xpc_allocate_msg() */			xpc_msgqueue_deref(ch);			return ret;		}	}	msg->flags |= XPC_M_READY;	/*	 * The preceding store of msg->flags must occur before the following	 * load of ch->local_GP->put.	 */	mb();	/* see if the message is next in line to be sent, if so send it */	put = ch->local_GP->put;	if (put == msg_number) {		xpc_send_msgs(ch, put);	}	/* drop the reference grabbed in xpc_allocate_msg() */	xpc_msgqueue_deref(ch);	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/821fe94727e72d63e1abd1bc0b044c72dfad9fb6/xpc_channel.c/buggy/arch/ia64/sn/kernel/xpc_channel.c