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>
This commit is contained in:
committed by
David S. Miller
parent
5b20865675
commit
8d545c8f95
@ -43,8 +43,7 @@ struct cfctrl_rsp {
|
||||
void (*linksetup_rsp)(struct cflayer *layer, u8 linkid,
|
||||
enum cfctrl_srv serv, u8 phyid,
|
||||
struct cflayer *adapt_layer);
|
||||
void (*linkdestroy_rsp)(struct cflayer *layer, u8 linkid,
|
||||
struct cflayer *client_layer);
|
||||
void (*linkdestroy_rsp)(struct cflayer *layer, u8 linkid);
|
||||
void (*linkerror_ind)(void);
|
||||
void (*enum_rsp)(void);
|
||||
void (*sleep_rsp)(void);
|
||||
@ -117,7 +116,7 @@ struct cfctrl {
|
||||
};
|
||||
|
||||
void cfctrl_enum_req(struct cflayer *cfctrl, u8 physlinkid);
|
||||
void cfctrl_linkup_request(struct cflayer *cfctrl,
|
||||
int cfctrl_linkup_request(struct cflayer *cfctrl,
|
||||
struct cfctrl_link_param *param,
|
||||
struct cflayer *user_layer);
|
||||
int cfctrl_linkdown_req(struct cflayer *cfctrl, u8 linkid,
|
||||
@ -135,4 +134,6 @@ void cfctrl_insert_req(struct cfctrl *ctrl,
|
||||
struct cfctrl_request_info *req);
|
||||
struct cfctrl_request_info *cfctrl_remove_req(struct cfctrl *ctrl,
|
||||
struct cfctrl_request_info *req);
|
||||
void cfctrl_cancel_req(struct cflayer *layr, struct cflayer *adap_layer);
|
||||
|
||||
#endif /* CFCTRL_H_ */
|
||||
|
Reference in New Issue
Block a user