rem: pbuf_cat(cur_rcv_buf,p);
add: pbuf_chain(cur_rcv_buf,p);
context: static u32 __bba_link_rxbuffer1(){	u32 len,ret = ERR_OK;	void *pc;	u8 *rcv_buf0,*rcv_buf1;	struct pbuf *tmp,*p = NULL;	bba_deselect();	LWIP_DEBUGF(NETIF_DEBUG,("__bba_link_rxbuffer1(%d,%d)\n",cur_rcv_len0,cur_rcv_len1));	rcv_buf0 = cur_rcv_buffer0;	rcv_buf1 = cur_rcv_buffer1;	p = pbuf_alloc(PBUF_LINK,cur_rcv_len0+cur_rcv_len1,PBUF_POOL);	for(tmp=p;tmp!=NULL;tmp=tmp->next) {		pc = tmp->payload;		len = tmp->len;		if(cur_rcv_len0>0 && cur_rcv_len0<=len) {			DCInvalidateRange(rcv_buf0,((cur_rcv_len0+31)&~31));			memcpy(pc,rcv_buf0,cur_rcv_len0);			pc += cur_rcv_len0;			len -= cur_rcv_len0;			cur_rcv_len0 = 0;		} else if(cur_rcv_len0>0 && cur_rcv_len0>len) {			DCInvalidateRange(rcv_buf0,((len+31)&~31));			memcpy(pc,rcv_buf0,len);			cur_rcv_len0 -= len;			rcv_buf0 += len;			pc += len;		}		if(!cur_rcv_len0 && (cur_rcv_len1>0 && cur_rcv_len1<=len)) {			DCInvalidateRange(rcv_buf1,((cur_rcv_len1+31)&~31));			memcpy(pc,rcv_buf1,cur_rcv_len1);			pc += cur_rcv_len1;			len -= cur_rcv_len1;			cur_rcv_len1 = 0;		} else if(!cur_rcv_len0 && (cur_rcv_len1>0 && cur_rcv_len1>len)) {			DCInvalidateRange(rcv_buf1,((len+31)&~31));			memcpy(pc,rcv_buf1,len);			cur_rcv_len1 -= len;			rcv_buf1 += len;			pc += len;		}	}	if(cur_rcv_buf) {		pbuf_cat(cur_rcv_buf,p);	} else {		cur_rcv_buf = p;	}		rrp = cur_descr.next_packet_ptr;	ret = __bba_link_rx();	return ret;}