if (theirs.reverse && ours->reverse) { 
if ((theirs.reverse & 0x01 ) && (ours->reverse & 0x01)) { 
int x25_negotiate_facilities(struct sk_buff *skb, struct sock *sk,			     struct x25_facilities *new){	struct x25_sock *x25 = x25_sk(sk);	struct x25_facilities *ours = &x25->facilities;	struct x25_facilities theirs;	int len;	memset(&theirs, 0, sizeof(theirs));	memcpy(new, ours, sizeof(*new));	len = x25_parse_facilities(skb, &theirs, &x25->vc_facil_mask);	/*	 *	They want reverse charging, we won't accept it.	 */	if (theirs.reverse && ours->reverse) {		SOCK_DEBUG(sk, "X.25: rejecting reverse charging request");		return -1;	}	new->reverse = theirs.reverse;	if (theirs.throughput) {		if (theirs.throughput < ours->throughput) {			SOCK_DEBUG(sk, "X.25: throughput negotiated down");			new->throughput = theirs.throughput;		}	}	if (theirs.pacsize_in && theirs.pacsize_out) {		if (theirs.pacsize_in < ours->pacsize_in) {			SOCK_DEBUG(sk, "X.25: packet size inwards negotiated down");			new->pacsize_in = theirs.pacsize_in;		}		if (theirs.pacsize_out < ours->pacsize_out) {			SOCK_DEBUG(sk, "X.25: packet size outwards negotiated down");			new->pacsize_out = theirs.pacsize_out;		}	}	if (theirs.winsize_in && theirs.winsize_out) {		if (theirs.winsize_in < ours->winsize_in) {			SOCK_DEBUG(sk, "X.25: window size inwards negotiated down");			new->winsize_in = theirs.winsize_in;		}		if (theirs.winsize_out < ours->winsize_out) {			SOCK_DEBUG(sk, "X.25: window size outwards negotiated down");			new->winsize_out = theirs.winsize_out;		}	}	return len;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/ebc3f64b864fc16a594c2e63bf55a55c7d42084b/x25_facilities.c/clean/net/x25/x25_facilities.c