[openib-general] user_mad::ib_umad_read question
Hal Rosenstock
halr at voltaire.com
Thu May 19 09:38:28 PDT 2005
Hi,
In ib_umad_read, there is currently (or soon to be something like) the
following:
...
packet = list_entry(file->recv_list.next, struct ib_umad_packet, list);
list_del(&packet->list);
spin_unlock_irq(&file->recv_lock);
if (copy_to_user(buf, &packet->mad,
min(count, packet->length +
sizeof (struct ib_user_mad))))
ret = -EFAULT;
else
ret = count;
kfree(packet);
return ret;
Should the packet be thrown away because copy_to_user() fails ?
Shouldn't it be placed back at the head of the list ? Unfortunately,
that would mean holding the recv lock longer (through the duration of
copy_to_user).
-- Hal
More information about the general
mailing list