This removes the usage of struct scatterlist completely.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: Kai Makisara <Kai.Makisara@kolumbus.fi>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
static struct st_buffer *
new_tape_buffer(int from_initialization, int need_dma, int max_sg)
{
static struct st_buffer *
new_tape_buffer(int from_initialization, int need_dma, int max_sg)
{
gfp_t priority;
struct st_buffer *tb;
gfp_t priority;
struct st_buffer *tb;
else
priority = GFP_KERNEL;
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;
if (!tb) {
printk(KERN_NOTICE "st: Can't allocate new tape buffer.\n");
return NULL;
tb->dma = need_dma;
tb->buffer_size = got;
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) {
tb->reserved_pages = kzalloc(max_sg * sizeof(struct page *), priority);
if (!tb->reserved_pages) {
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 */
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 */
};
/* The tape mode definition */