<div>Hi Hal,</div>
<div> </div>
<div>Those changes did not do the trick, I'm afraid.</div>
<div> </div>
<div>Cheers,</div>
<div> </div>
<div>Steve.<br><br> </div>
<div><span class="gmail_quote">On 22 Nov 2006 07:20:00 -0500, <b class="gmail_sendername">Hal Rosenstock</b> <<a href="mailto:halr@voltaire.com">halr@voltaire.com</a>> wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Hi Steve,<br><br>On Wed, 2006-11-22 at 06:22, Steven Wooding wrote:<br>> Hi Hal,<br>><br>> The debugger reveals that the pointer p_sa_mad is equal to 0xffffffff.
<br>> When the osmv_get_query_result() returns it tries to use<br>> p_sa_mad->data and that's what causes the seg fault.<br>><br>> I also noticed that mad_size=0 in the osm_madw_t structure.<br>><br>> What could have caused this to only happen in my user code?
<br><br>I'm not 100% sure it's your user code. I want to eliminate the following<br>first prior to looking some more at what is going on:<br><br>There are two changes to make and see if this helps:<br><br>1. Save your original versions of osm_vendor_ibumad_sa.c and
<br>osm_vendor_ibumad.c<br><br>2. Make the following change in osm_vendor_ibumad_sa.c:<br><br>Add the following in:<br>182,187c180<br><br>  /* put back the request madw */<br>  if (p_req_madw)<br>    osm_mad_pool_put(p_bind->p_mad_pool, p_req_madw);
<br><br>after:<br>Exit:<br><br>/* free the copied query request if found */<br>if (p_query_req_copy) cl_free(p_query_req_copy);<br><br>3. Copy OFED 1.1 osm_vendor_ibumad.c over. There are a number of<br>important bug fixes which may impact this. (Yes, I know the memory
<br>allocation is using malloc/free directly but things should work or you<br>can hand edit these).<br><br>4. Rebuild<br><br>5. Rerun and see if still have same failure<br><br>You can back these out if you don't like but I think they are
<br>improvements.<br><br>-- Hal<br><br></blockquote></div>