Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 249485
b: refs/heads/master
c: 3862ef3
h: refs/heads/master
i:
  249483: abf32fd
v: v3
  • Loading branch information
K. Y. Srinivasan authored and Greg Kroah-Hartman committed May 11, 2011
1 parent 7253622 commit 1e05600
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 29 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 49a3c7a90a45fc2ce380083cc8a797865d25df00
refs/heads/master: 3862ef3e5ed19d27fbd4f39172db1d388d0bdd62
55 changes: 27 additions & 28 deletions trunk/drivers/staging/hv/storvsc_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,33 @@ static void destroy_bounce_buffer(struct scatterlist *sgl,
kfree(sgl);
}

static int do_bounce_buffer(struct scatterlist *sgl, unsigned int sg_count)
{
int i;

/* No need to check */
if (sg_count < 2)
return -1;

/* We have at least 2 sg entries */
for (i = 0; i < sg_count; i++) {
if (i == 0) {
/* make sure 1st one does not have hole */
if (sgl[i].offset + sgl[i].length != PAGE_SIZE)
return i;
} else if (i == sg_count - 1) {
/* make sure last one does not have hole */
if (sgl[i].offset != 0)
return i;
} else {
/* make sure no hole in the middle */
if (sgl[i].length != PAGE_SIZE || sgl[i].offset != 0)
return i;
}
}
return -1;
}

/* Static decl */
static int storvsc_probe(struct hv_device *dev);
static int storvsc_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *scmnd);
Expand All @@ -172,7 +199,6 @@ static int storvsc_remove(struct hv_device *dev);
static struct scatterlist *create_bounce_buffer(struct scatterlist *sgl,
unsigned int sg_count,
unsigned int len);
static int do_bounce_buffer(struct scatterlist *sgl, unsigned int sg_count);
static unsigned int copy_from_bounce_buffer(struct scatterlist *orig_sgl,
struct scatterlist *bounce_sgl,
unsigned int orig_sgl_count);
Expand Down Expand Up @@ -499,33 +525,6 @@ static void storvsc_commmand_completion(struct hv_storvsc_request *request)
kmem_cache_free(host_dev->request_pool, cmd_request);
}

static int do_bounce_buffer(struct scatterlist *sgl, unsigned int sg_count)
{
int i;

/* No need to check */
if (sg_count < 2)
return -1;

/* We have at least 2 sg entries */
for (i = 0; i < sg_count; i++) {
if (i == 0) {
/* make sure 1st one does not have hole */
if (sgl[i].offset + sgl[i].length != PAGE_SIZE)
return i;
} else if (i == sg_count - 1) {
/* make sure last one does not have hole */
if (sgl[i].offset != 0)
return i;
} else {
/* make sure no hole in the middle */
if (sgl[i].length != PAGE_SIZE || sgl[i].offset != 0)
return i;
}
}
return -1;
}

static struct scatterlist *create_bounce_buffer(struct scatterlist *sgl,
unsigned int sg_count,
unsigned int len)
Expand Down

0 comments on commit 1e05600

Please sign in to comment.