|
@@ -189,7 +189,6 @@ static void normalize_buffer(struct st_buffer *);
|
|
static int append_to_buffer(const char __user *, struct st_buffer *, int);
|
|
static int append_to_buffer(const char __user *, struct st_buffer *, int);
|
|
static int from_buffer(struct st_buffer *, char __user *, int);
|
|
static int from_buffer(struct st_buffer *, char __user *, int);
|
|
static void move_buffer_data(struct st_buffer *, int);
|
|
static void move_buffer_data(struct st_buffer *, int);
|
|
-static void buf_to_sg(struct st_buffer *, unsigned int);
|
|
|
|
|
|
|
|
static int sgl_map_user_pages(struct st_buffer *, const unsigned int,
|
|
static int sgl_map_user_pages(struct st_buffer *, const unsigned int,
|
|
unsigned long, size_t, int);
|
|
unsigned long, size_t, int);
|
|
@@ -554,8 +553,6 @@ st_do_scsi(struct st_request * SRpnt, struct scsi_tape * STp, unsigned char *cmd
|
|
mdata->nr_entries = STp->buffer->sg_segs;
|
|
mdata->nr_entries = STp->buffer->sg_segs;
|
|
mdata->pages = STp->buffer->mapped_pages;
|
|
mdata->pages = STp->buffer->mapped_pages;
|
|
} else {
|
|
} else {
|
|
- buf_to_sg(STp->buffer, bytes);
|
|
|
|
-
|
|
|
|
mdata->nr_entries =
|
|
mdata->nr_entries =
|
|
DIV_ROUND_UP(bytes, PAGE_SIZE << mdata->page_order);
|
|
DIV_ROUND_UP(bytes, PAGE_SIZE << mdata->page_order);
|
|
STp->buffer->map_data.pages = STp->buffer->reserved_pages;
|
|
STp->buffer->map_data.pages = STp->buffer->reserved_pages;
|
|
@@ -3964,32 +3961,6 @@ static void move_buffer_data(struct st_buffer * st_bp, int offset)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
-/* Fill the s/g list up to the length required for this transfer */
|
|
|
|
-static void buf_to_sg(struct st_buffer *STbp, unsigned int length)
|
|
|
|
-{
|
|
|
|
- int i;
|
|
|
|
- unsigned int count;
|
|
|
|
- struct scatterlist *sg;
|
|
|
|
- struct st_buf_fragment *frp;
|
|
|
|
-
|
|
|
|
- if (length == STbp->frp_sg_current)
|
|
|
|
- return; /* work already done */
|
|
|
|
-
|
|
|
|
- sg = &(STbp->sg[0]);
|
|
|
|
- frp = STbp->frp;
|
|
|
|
- for (i=count=0; count < length; i++) {
|
|
|
|
- if (length - count > frp[i].length)
|
|
|
|
- sg_set_page(&sg[i], frp[i].page, frp[i].length, 0);
|
|
|
|
- else
|
|
|
|
- sg_set_page(&sg[i], frp[i].page, length - count, 0);
|
|
|
|
- count += sg[i].length;
|
|
|
|
- }
|
|
|
|
- STbp->sg_segs = i;
|
|
|
|
- STbp->frp_sg_current = length;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-
|
|
|
|
/* Validate the options from command line or module parameters */
|
|
/* Validate the options from command line or module parameters */
|
|
static void validate_options(void)
|
|
static void validate_options(void)
|
|
{
|
|
{
|