Make sure that kernel is interrupt disabled.
This commit is contained in:
@@ -35,13 +35,13 @@ Modification:
|
||||
#include "syscall.h"
|
||||
#include "task.h"
|
||||
|
||||
int create_session_inner(struct TaskMicroDescriptor* client, struct TaskMicroDescriptor* server, int capacity, struct Session* user_session)
|
||||
struct session_backend* create_session_inner(struct TaskMicroDescriptor* client, struct TaskMicroDescriptor* server, int capacity, struct Session* user_session)
|
||||
{
|
||||
// create share pages
|
||||
struct session_backend* session_backend = xizi_share_page_manager.create_share_pages(client, server, capacity);
|
||||
if (UNLIKELY(session_backend == NULL)) {
|
||||
DEBUG("create_share_pages failed\n");
|
||||
return -1;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// init user_session
|
||||
@@ -51,7 +51,7 @@ int create_session_inner(struct TaskMicroDescriptor* client, struct TaskMicroDes
|
||||
user_session->tail = 0;
|
||||
user_session->id = session_backend->session_id;
|
||||
|
||||
return 0;
|
||||
return session_backend;
|
||||
}
|
||||
|
||||
int sys_connect_session(char* path, int capacity, struct Session* user_session)
|
||||
@@ -76,5 +76,8 @@ int sys_connect_session(char* path, int capacity, struct Session* user_session)
|
||||
|
||||
struct TaskMicroDescriptor* server = AchieveResource(&server_tag);
|
||||
assert(server != NULL);
|
||||
return create_session_inner(client, server, capacity, user_session);
|
||||
if (create_session_inner(client, server, capacity, user_session) == NULL) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user