<html><body>
<p><tt>openib-general-bounces@openib.org wrote on 10/18/2005 03:40:47 PM:<br>
<br>
> <br>
> <br>
> <br>
> <br>
> On Mon, 2005-10-18 at 10:07, Kevin Reilly wrote:<br>
> >On Mon, 2005-10-17 at 10:07, Hal Rosenstock wrote:<br>
> >> > Should this code work, because it seems that out_dev is a kernel<br>
> >> > address (platform: PPC64) which cannot accessed  by a userspace<br>
> >> > program. Via GDB I can see that rt has the following content:<br>
> >> ><br>
> >> > The address is rt->out_dev = 0xc0000000cffaa800 which looks like a<br>
> >> > kernel address.<br>
> >><br>
> >> Yes, this is a bug which has been previously pointed out on the list and<br>
> >> not fixed.<br>
> ></tt><br>
<br>
<tt>Can some one point me to the previous discussions on this list (search did not yield any</tt><br>
<tt>results)? The problem is because of a copy_to_user (in uat.c) between </tt><tt>struct ib_at_ib_route</tt><br>
<tt>which are different between user and kernel space causing this crash. </tt><br>
<tt>What was the rationale of putting a pointer to struct ibv_device in the user space version of</tt><br>
<tt>ib_at_ib_route? The out_dev field in user space is not really used as far as I could see.</tt><br>
<tt><br>
> >The fix for this involves an ABI change: it should return the GID of the<br>
> >outgoing IB device.<br>
> ></tt><br>
<br>
<tt>Would a simple solution like adding a device_name field to both the ib_at_ib_route structures</tt><br>
<tt>be acceptable? The out_dev field could be used as a "reserved" field in user space and not be used.</tt><br>
<tt>That should not break anything as far as I can see.</tt><br>
<br>
<tt><br>
> >-- Hal<br>
<br>
Pradeep</tt><br>
<tt>pradeep@us.ibm.com</tt></body></html>