Subject: linux-next: manual merge of the net-next tree with Linus' tree

From: Stephen Rothwell <[email-masked]>
Date: Thu, 12 Jun 2014 12:01:46 +1000

Hi all,

Today's linux-next merge of the net-next tree got a conflict in
drivers/infiniband/hw/cxgb4/cm.c between commits 11b8e22d4d09
("RDMA/cxgb4: Fix vlan support") and 9eccfe109b27 ("RDMA/cxgb4: Add
support for iWARP Port Mapper user space service") from Linus' tree and
commits 92e7ae71726c ("iw_cxgb4: Choose appropriate hw mtu index and
ISS for iWARP connections") and b408ff282dda ("iw_cxgb4: don't truncate
the recv window size") from the net-next tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    [email-masked]

diff --cc drivers/infiniband/hw/cxgb4/cm.c
index 96d7131ab974,965eaafd5851..000000000000
--- a/drivers/infiniband/hw/cxgb4/cm.c
+++ b/drivers/infiniband/hw/cxgb4/cm.c
@@@ -533,38 -532,17 +537,49 @@@ static int send_abort(struct c4iw_ep *e
  	return c4iw_l2t_send(&ep->com.dev->rdev, skb, ep->l2t);
  }
  
 +/*
 + * c4iw_form_pm_msg - Form a port mapper message with mapping info
 + */
 +static void c4iw_form_pm_msg(struct c4iw_ep *ep,
 +				struct iwpm_sa_data *pm_msg)
 +{
 +	memcpy(&pm_msg->loc_addr, &ep->com.local_addr,
 +		sizeof(ep->com.local_addr));
 +	memcpy(&pm_msg->rem_addr, &ep->com.remote_addr,
 +		sizeof(ep->com.remote_addr));
 +}
 +
 +/*
 + * c4iw_form_reg_msg - Form a port mapper message with dev info
 + */
 +static void c4iw_form_reg_msg(struct c4iw_dev *dev,
 +				struct iwpm_dev_data *pm_msg)
 +{
 +	memcpy(pm_msg->dev_name, dev->ibdev.name, IWPM_DEVNAME_SIZE);
 +	memcpy(pm_msg->if_name, dev->rdev.lldi.ports[0]->name,
 +				IWPM_IFNAME_SIZE);
 +}
 +
 +static void c4iw_record_pm_msg(struct c4iw_ep *ep,
 +			struct iwpm_sa_data *pm_msg)
 +{
 +	memcpy(&ep->com.mapped_local_addr, &pm_msg->mapped_loc_addr,
 +		sizeof(ep->com.mapped_local_addr));
 +	memcpy(&ep->com.mapped_remote_addr, &pm_msg->mapped_rem_addr,
 +		sizeof(ep->com.mapped_remote_addr));
 +}
 +
+ static void best_mtu(const unsigned short *mtus, unsigned short mtu,
+ 		     unsigned int *idx, int use_ts)
+ {
+ 	unsigned short hdr_size = sizeof(struct iphdr) +
+ 				  sizeof(struct tcphdr) +
+ 				  (use_ts ? 12 : 0);
+ 	unsigned short data_size = mtu - hdr_size;
+ 
+ 	cxgb4_best_aligned_mtu(mtus, hdr_size, data_size, 8, idx);
+ }
+ 
  static int send_connect(struct c4iw_ep *ep)
  {
  	struct cpl_act_open_req *req;
@@@ -583,14 -561,11 +598,15 @@@
  	int sizev6 = is_t4(ep->com.dev->rdev.lldi.adapter_type) ?
  				sizeof(struct cpl_act_open_req6) :
  				sizeof(struct cpl_t5_act_open_req6);
 -	struct sockaddr_in *la = (struct sockaddr_in *)&ep->com.local_addr;
 -	struct sockaddr_in *ra = (struct sockaddr_in *)&ep->com.remote_addr;
 -	struct sockaddr_in6 *la6 = (struct sockaddr_in6 *)&ep->com.local_addr;
 -	struct sockaddr_in6 *ra6 = (struct sockaddr_in6 *)&ep->com.remote_addr;
 +	struct sockaddr_in *la = (struct sockaddr_in *)
 +				 &ep->com.mapped_local_addr;
 +	struct sockaddr_in *ra = (struct sockaddr_in *)
 +				 &ep->com.mapped_remote_addr;
 +	struct sockaddr_in6 *la6 = (struct sockaddr_in6 *)
 +				   &ep->com.mapped_local_addr;
 +	struct sockaddr_in6 *ra6 = (struct sockaddr_in6 *)
 +				   &ep->com.mapped_remote_addr;
+ 	int win;
  
  	wrlen = (ep->com.remote_addr.ss_family == AF_INET) ?
  			roundup(sizev4, 16) :
@@@ -1796,7 -1821,8 +1862,8 @@@ static int import_ep(struct c4iw_ep *ep
  		step = cdev->rdev.lldi.nrxq /
  			cdev->rdev.lldi.nchan;
  		ep->rss_qid = cdev->rdev.lldi.rxq_ids[
 -			cxgb4_port_idx(n->dev) * step];
 +			cxgb4_port_idx(pdev) * step];
+ 		set_tcp_window(ep, (struct port_info *)netdev_priv(pdev));
  
  		if (clear_mpa_v1) {
  			ep->retry_with_mpa_v1 = 0;