44 #include <linux/slab.h>
83 *ipd = ((link + (path >> 1)) /
path) - 1;
102 av->
av.sl = ah_attr->
sl;
103 av->
av.dlid = ah_attr->
dlid;
111 goto create_ah_exit1;
120 ah_attr->
grh.traffic_class);
122 ah_attr->
grh.flow_label);
124 ah_attr->
grh.hop_limit);
131 memset(&port_attr, 0,
sizeof(port_attr));
137 "ehca_query_port() returned %x "
138 "pd=%p ah_attr=%p", rc, pd, ah_attr);
139 goto create_ah_exit1;
141 memset(&gid, 0,
sizeof(gid));
144 ah_attr->
grh.sgid_index, &gid);
148 "ehca_query_gid() returned %x "
149 "pd=%p ah_attr=%p", rc, pd, ah_attr);
150 goto create_ah_exit1;
152 memcpy(&av->
av.grh.word_1, &gid,
sizeof(gid));
158 sizeof(ah_attr->
grh.dgid));
175 memset(&new_ehca_av, 0,
sizeof(new_ehca_av));
176 new_ehca_av.
sl = ah_attr->
sl;
183 ah_attr->
grh.traffic_class);
185 ah_attr->
grh.flow_label);
187 ah_attr->
grh.hop_limit);
195 memset(&port_attr, 0,
sizeof(port_attr));
200 "ehca_query_port() returned %x "
201 "ah=%p ah_attr=%p port_num=%x",
202 rc, ah, ah_attr, ah_attr->
port_num);
205 memset(&gid, 0,
sizeof(gid));
208 ah_attr->
grh.sgid_index, &gid);
211 "ehca_query_gid() returned %x "
212 "ah=%p ah_attr=%p port_num=%x "
215 ah_attr->
grh.sgid_index);
218 memcpy(&new_ehca_av.
grh.word_1, &gid,
sizeof(gid));
224 sizeof(ah_attr->
grh.dgid));
227 av->
av = new_ehca_av;
237 sizeof(ah_attr->
grh.dgid));
238 ah_attr->
sl = av->
av.sl;
240 ah_attr->
dlid = av->
av.dlid;