diff options
author | Sjur Braendeland <sjur.brandeland@stericsson.com> | 2010-04-28 04:54:37 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-28 15:55:13 -0400 |
commit | 8d545c8f958f5f433c50a00762ce1f231ed56eee (patch) | |
tree | f5688212d86c0bc6bf0ba8b02f57fca77de3145e /include/net/caif | |
parent | 5b2086567503f9b55136642031ec0067319f58e0 (diff) |
caif: Disconnect without waiting for response
Changes:
o Function cfcnfg_disconn_adapt_layer is changed to do asynchronous
disconnect, not waiting for any response from the modem. Due to this
the function cfcnfg_linkdestroy_rsp does nothing anymore.
o Because disconnect may take down a connection before a connect response
is received the function cfcnfg_linkup_rsp is checking if the client is
still waiting for the response, if not a disconnect request is sent to
the modem.
o cfctrl is no longer keeping track of pending disconnect requests.
o Added function cfctrl_cancel_req, which is used for deleting a pending
connect request if disconnect is done before connect response is received.
o Removed unused function cfctrl_insert_req2
o Added better handling of connect reject from modem.
Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/caif')
-rw-r--r-- | include/net/caif/cfctrl.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/include/net/caif/cfctrl.h b/include/net/caif/cfctrl.h index dee25b86caa0..997603f2bf4c 100644 --- a/include/net/caif/cfctrl.h +++ b/include/net/caif/cfctrl.h | |||
@@ -43,8 +43,7 @@ struct cfctrl_rsp { | |||
43 | void (*linksetup_rsp)(struct cflayer *layer, u8 linkid, | 43 | void (*linksetup_rsp)(struct cflayer *layer, u8 linkid, |
44 | enum cfctrl_srv serv, u8 phyid, | 44 | enum cfctrl_srv serv, u8 phyid, |
45 | struct cflayer *adapt_layer); | 45 | struct cflayer *adapt_layer); |
46 | void (*linkdestroy_rsp)(struct cflayer *layer, u8 linkid, | 46 | void (*linkdestroy_rsp)(struct cflayer *layer, u8 linkid); |
47 | struct cflayer *client_layer); | ||
48 | void (*linkerror_ind)(void); | 47 | void (*linkerror_ind)(void); |
49 | void (*enum_rsp)(void); | 48 | void (*enum_rsp)(void); |
50 | void (*sleep_rsp)(void); | 49 | void (*sleep_rsp)(void); |
@@ -117,7 +116,7 @@ struct cfctrl { | |||
117 | }; | 116 | }; |
118 | 117 | ||
119 | void cfctrl_enum_req(struct cflayer *cfctrl, u8 physlinkid); | 118 | void cfctrl_enum_req(struct cflayer *cfctrl, u8 physlinkid); |
120 | void cfctrl_linkup_request(struct cflayer *cfctrl, | 119 | int cfctrl_linkup_request(struct cflayer *cfctrl, |
121 | struct cfctrl_link_param *param, | 120 | struct cfctrl_link_param *param, |
122 | struct cflayer *user_layer); | 121 | struct cflayer *user_layer); |
123 | int cfctrl_linkdown_req(struct cflayer *cfctrl, u8 linkid, | 122 | int cfctrl_linkdown_req(struct cflayer *cfctrl, u8 linkid, |
@@ -135,4 +134,6 @@ void cfctrl_insert_req(struct cfctrl *ctrl, | |||
135 | struct cfctrl_request_info *req); | 134 | struct cfctrl_request_info *req); |
136 | struct cfctrl_request_info *cfctrl_remove_req(struct cfctrl *ctrl, | 135 | struct cfctrl_request_info *cfctrl_remove_req(struct cfctrl *ctrl, |
137 | struct cfctrl_request_info *req); | 136 | struct cfctrl_request_info *req); |
137 | void cfctrl_cancel_req(struct cflayer *layr, struct cflayer *adap_layer); | ||
138 | |||
138 | #endif /* CFCTRL_H_ */ | 139 | #endif /* CFCTRL_H_ */ |