diff --git a/[refs] b/[refs] index 4c1ff4046ad5..ce2788e4f4d2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f409d6cc688d4e87b0ebf577b6554695e1931705 +refs/heads/master: 1ac63cf5c05f956f52ab418a07f77d12328f3b5f diff --git a/trunk/drivers/scsi/st.c b/trunk/drivers/scsi/st.c index 22ddca891e17..50dbe14db37b 100644 --- a/trunk/drivers/scsi/st.c +++ b/trunk/drivers/scsi/st.c @@ -3749,7 +3749,7 @@ static struct st_buffer *new_tape_buffer(int need_dma, int max_sg) printk(KERN_NOTICE "st: Can't allocate new tape buffer.\n"); return NULL; } - tb->frp_segs = tb->orig_frp_segs = 0; + tb->frp_segs = 0; tb->use_sg = max_sg; tb->dma = need_dma; tb->buffer_size = 0; @@ -3839,11 +3839,11 @@ static void normalize_buffer(struct st_buffer * STbuffer) { int i, order = STbuffer->map_data.page_order; - for (i = STbuffer->orig_frp_segs; i < STbuffer->frp_segs; i++) { + for (i = 0; i < STbuffer->frp_segs; i++) { __free_pages(STbuffer->reserved_pages[i], order); STbuffer->buffer_size -= (PAGE_SIZE << order); } - STbuffer->frp_segs = STbuffer->orig_frp_segs; + STbuffer->frp_segs = 0; STbuffer->frp_sg_current = 0; STbuffer->sg_segs = 0; STbuffer->map_data.page_order = 0; @@ -4304,7 +4304,6 @@ static void scsi_tape_release(struct kref *kref) tpnt->device = NULL; if (tpnt->buffer) { - tpnt->buffer->orig_frp_segs = 0; normalize_buffer(tpnt->buffer); kfree(tpnt->buffer->reserved_pages); kfree(tpnt->buffer); diff --git a/trunk/drivers/scsi/st.h b/trunk/drivers/scsi/st.h index d29760776f42..e682f8045034 100644 --- a/trunk/drivers/scsi/st.h +++ b/trunk/drivers/scsi/st.h @@ -51,7 +51,6 @@ struct st_buffer { unsigned char *b_data; unsigned short use_sg; /* zero or max number of s/g segments for this adapter */ unsigned short sg_segs; /* number of segments in s/g list */ - unsigned short orig_frp_segs; /* number of segments allocated at first try */ unsigned short frp_segs; /* number of buffer segments */ unsigned int frp_sg_current; /* driver buffer length currently in s/g list */ };