These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / misc / sgi-gru / grukservices.c
index 913de07..967b9dd 100644 (file)
@@ -160,7 +160,12 @@ static void gru_load_kernel_context(struct gru_blade_state *bs, int blade_id)
        down_write(&bs->bs_kgts_sema);
 
        if (!bs->bs_kgts) {
-               bs->bs_kgts = gru_alloc_gts(NULL, 0, 0, 0, 0, 0);
+               do {
+                       bs->bs_kgts = gru_alloc_gts(NULL, 0, 0, 0, 0, 0);
+                       if (!IS_ERR(bs->bs_kgts))
+                               break;
+                       msleep(1);
+               } while (true);
                bs->bs_kgts->ts_user_blade_id = blade_id;
        }
        kgts = bs->bs_kgts;
@@ -429,8 +434,8 @@ int gru_get_cb_exception_detail(void *cb,
        return 0;
 }
 
-char *gru_get_cb_exception_detail_str(int ret, void *cb,
-                                     char *buf, int size)
+static char *gru_get_cb_exception_detail_str(int ret, void *cb,
+                                            char *buf, int size)
 {
        struct gru_control_block_status *gen = (void *)cb;
        struct control_block_extended_exc_detail excdet;
@@ -505,7 +510,7 @@ int gru_wait_proc(void *cb)
        return ret;
 }
 
-void gru_abort(int ret, void *cb, char *str)
+static void gru_abort(int ret, void *cb, char *str)
 {
        char buf[GRU_EXC_STR_SIZE];
 
@@ -997,7 +1002,6 @@ static int quicktest1(unsigned long arg)
 {
        struct gru_message_queue_desc mqd;
        void *p, *mq;
-       unsigned long *dw;
        int i, ret = -EIO;
        char mes[GRU_CACHE_LINE_BYTES], *m;
 
@@ -1007,7 +1011,6 @@ static int quicktest1(unsigned long arg)
                return -ENOMEM;
        mq = ALIGNUP(p, 1024);
        memset(mes, 0xee, sizeof(mes));
-       dw = mq;
 
        gru_create_message_queue(&mqd, mq, 8 * GRU_CACHE_LINE_BYTES, 0, 0, 0);
        for (i = 0; i < 6; i++) {