diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index 1cfd217f8904..f934016f640c 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c @@ -3744,7 +3744,7 @@ static long st_compat_ioctl(struct file *file, unsigned int cmd, unsigned long a static struct st_buffer * new_tape_buffer(int from_initialization, int need_dma, int max_sg) { - int i, got = 0; + int got = 0; gfp_t priority; struct st_buffer *tb; @@ -3753,10 +3753,7 @@ static struct st_buffer * else priority = GFP_KERNEL; - i = sizeof(struct st_buffer) + - (max_sg - 1) * sizeof(struct scatterlist); - - tb = kzalloc(i, priority); + tb = kzalloc(sizeof(struct st_buffer), priority); if (!tb) { printk(KERN_NOTICE "st: Can't allocate new tape buffer.\n"); return NULL; @@ -3766,7 +3763,6 @@ static struct st_buffer * tb->dma = need_dma; tb->buffer_size = got; - sg_init_table(tb->sg, max_sg); tb->reserved_pages = kzalloc(max_sg * sizeof(struct page *), priority); if (!tb->reserved_pages) { diff --git a/drivers/scsi/st.h b/drivers/scsi/st.h index cc46f18762b7..d29760776f42 100644 --- a/drivers/scsi/st.h +++ b/drivers/scsi/st.h @@ -54,7 +54,6 @@ struct st_buffer { 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 */ - struct scatterlist sg[1]; /* MUST BE last item */ }; /* The tape mode definition */