@ -179,12 +179,12 @@ static int is_vendor_method_in_use(
return 0 ;
}
int ib_response_mad ( struct ib_mad * mad )
int ib_response_mad ( const struct ib_mad_hdr * hdr )
{
return ( ( mad - > mad_hdr . method & IB_MGMT_METHOD_RESP ) | |
( mad - > mad_hdr . method = = IB_MGMT_METHOD_TRAP_REPRESS ) | |
( ( mad - > mad_hdr . mgmt_class = = IB_MGMT_CLASS_BM ) & &
( mad - > mad_hdr . attr_mod & IB_BM_ATTR_MOD_RESP ) ) ) ;
return ( ( hdr - > method & IB_MGMT_METHOD_RESP ) | |
( hdr - > method = = IB_MGMT_METHOD_TRAP_REPRESS ) | |
( ( hdr - > mgmt_class = = IB_MGMT_CLASS_BM ) & &
( hdr - > attr_mod & IB_BM_ATTR_MOD_RESP ) ) ) ;
}
EXPORT_SYMBOL ( ib_response_mad ) ;
@ -791,7 +791,7 @@ static int handle_outgoing_dr_smp(struct ib_mad_agent_private *mad_agent_priv,
switch ( ret )
{
case IB_MAD_RESULT_SUCCESS | IB_MAD_RESULT_REPLY :
if ( ib_response_mad ( & mad_priv - > mad . mad ) & &
if ( ib_response_mad ( & mad_priv - > mad . mad . mad_hdr ) & &
mad_agent_priv - > agent . recv_handler ) {
local - > mad_priv = mad_priv ;
local - > recv_mad_agent = mad_agent_priv ;
@ -1628,7 +1628,7 @@ find_mad_agent(struct ib_mad_port_private *port_priv,
unsigned long flags ;
spin_lock_irqsave ( & port_priv - > reg_lock , flags ) ;
if ( ib_response_mad ( mad ) ) {
if ( ib_response_mad ( & mad - > mad_hdr ) ) {
u32 hi_tid ;
struct ib_mad_agent_private * entry ;
@ -1765,8 +1765,8 @@ static inline int rcv_has_same_gid(struct ib_mad_agent_private *mad_agent_priv,
u8 port_num = mad_agent_priv - > agent . port_num ;
u8 lmc ;
send_resp = ib_response_mad ( ( struct ib_mad * ) wr - > send_buf . mad ) ;
rcv_resp = ib_response_mad ( rwc - > recv_buf . mad ) ;
send_resp = ib_response_mad ( ( struct ib_mad_hdr * ) wr - > send_buf . mad ) ;
rcv_resp = ib_response_mad ( & rwc - > recv_buf . mad - > mad_hdr ) ;
if ( send_resp = = rcv_resp )
/* both requests, or both responses. GIDs different */
@ -1879,7 +1879,7 @@ static void ib_mad_complete_recv(struct ib_mad_agent_private *mad_agent_priv,
}
/* Complete corresponding request */
if ( ib_response_mad ( mad_recv_wc - > recv_buf . mad ) ) {
if ( ib_response_mad ( & mad_recv_wc - > recv_buf . mad - > mad_hdr ) ) {
spin_lock_irqsave ( & mad_agent_priv - > lock , flags ) ;
mad_send_wr = ib_find_send_mad ( mad_agent_priv , mad_recv_wc ) ;
if ( ! mad_send_wr ) {