[SCSI] libiscsi: change login data buffer allocation
[deliverable/linux.git] / drivers / scsi / libiscsi.c
index 80cbcdce7fa3b64c4d8304b89915c7d1c5283faa..c1bb74052aed83092546e66781afca7c8dc38d61 100644 (file)
@@ -2284,7 +2284,8 @@ iscsi_conn_setup(struct iscsi_cls_session *cls_session, int dd_size,
        }
        spin_unlock_bh(&session->lock);
 
-       data = kmalloc(ISCSI_DEF_MAX_RECV_SEG_LEN, GFP_KERNEL);
+       data = (char *) __get_free_pages(GFP_KERNEL,
+                                        get_order(ISCSI_DEF_MAX_RECV_SEG_LEN));
        if (!data)
                goto login_task_data_alloc_fail;
        conn->login_task->data = conn->data = data;
@@ -2355,7 +2356,8 @@ void iscsi_conn_teardown(struct iscsi_cls_conn *cls_conn)
        iscsi_suspend_tx(conn);
 
        spin_lock_bh(&session->lock);
-       kfree(conn->data);
+       free_pages((unsigned long) conn->data,
+                  get_order(ISCSI_DEF_MAX_RECV_SEG_LEN));
        kfree(conn->persistent_address);
        __kfifo_put(session->cmdpool.queue, (void*)&conn->login_task,
                    sizeof(void*));
This page took 0.024547 seconds and 5 git commands to generate.