IB/mad: initialize mad_agent_priv before putting on lists
authorRalph Campbell <ralph.campbell@qlogic.com>
Fri, 27 Feb 2009 22:44:32 +0000 (14:44 -0800)
committerRoland Dreier <rolandd@cisco.com>
Fri, 27 Feb 2009 22:44:32 +0000 (14:44 -0800)
commitd9620a4c82c61a91c9313f80ba951c902573c028
treed49b92e161f7fc8176e04084b3d981d94ff9e2bd
parent1d9bc6d648ece77ffb41c5a577eab81fac5ad4de
IB/mad: initialize mad_agent_priv before putting on lists

There is a potential race in ib_register_mad_agent() where the struct
ib_mad_agent_private is not fully initialized before it is added to
the list of agents per IB port. This means the ib_mad_agent_private
could be seen before the refcount, spin locks, and linked lists are
initialized.  The fix is to initialize the structure earlier.

Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/core/mad.c