On 04/14/2015 08:21 PM, Jason Gunthorpe wrote: > On Tue, Apr 14, 2015 at 06:02:47PM +0000, Hefty, Sean wrote: >>> Yes, that is the only reasonable thing that could happen. >>> >>> init failure should only be possible under exceptional cases (OOM). >>> >>> The only system response is to call ib_umad_add_one again - so of >>> course the first call had to completely clean up everything it did. >> >> A reasonable follow up change would be to replace the add device >> callbacks with add port callbacks. > > Yes, combined with a port argument to ib_set_client_data / > ib_get_client_data it would be a nice simplifying clean up. > > It would be nice to have sane error handling too :( In an ideal world > the add call back should return an error and the thing that triggered > it should unwind back to module load failure.
We can give client->add() callback a return value and make ib_register_device() return -ENOMEM when it failed, just wondering why we don't do this at first, any special reason? Regards, Michael Wang > > Jason > -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html