linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] lib/scatterlist: export sg_miter_skip()
@ 2013-10-29 16:07 Ming Lei
  2013-10-31 21:47 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Ming Lei @ 2013-10-29 16:07 UTC (permalink / raw)
  To: linux-kernel, Andrew Morton
  Cc: FUJITA Tomonori, Tejun Heo, Jens Axboe, Matthew Dharm,
	Alan Stern, Greg Kroah-Hartman, USB list, Ming Lei

sg_copy_buffer() can't meet demand for some drrivers(such usb
mass storage), so we have to use the sg_miter_* APIs to access
sg buffer, then need export sg_miter_skip() for these drivers.

The API is needed for converting to sg_miter_* APIs in USB storage
driver for accessing sg buffer.

Cc: Andrew Morton <akpm@linux-foundation.org>,
Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>,
Cc: Tejun Heo <tj@kernel.org>,
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
---
 include/linux/scatterlist.h |    1 +
 lib/scatterlist.c           |    3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
index adae88f..a964f72 100644
--- a/include/linux/scatterlist.h
+++ b/include/linux/scatterlist.h
@@ -345,6 +345,7 @@ struct sg_mapping_iter {
 
 void sg_miter_start(struct sg_mapping_iter *miter, struct scatterlist *sgl,
 		    unsigned int nents, unsigned int flags);
+bool sg_miter_skip(struct sg_mapping_iter *miter, off_t offset);
 bool sg_miter_next(struct sg_mapping_iter *miter);
 void sg_miter_stop(struct sg_mapping_iter *miter);
 
diff --git a/lib/scatterlist.c b/lib/scatterlist.c
index d16fa29..3a8e8e8 100644
--- a/lib/scatterlist.c
+++ b/lib/scatterlist.c
@@ -495,7 +495,7 @@ static bool sg_miter_get_next_page(struct sg_mapping_iter *miter)
  *   true if @miter contains the valid mapping.  false if end of sg
  *   list is reached.
  */
-static bool sg_miter_skip(struct sg_mapping_iter *miter, off_t offset)
+bool sg_miter_skip(struct sg_mapping_iter *miter, off_t offset)
 {
 	sg_miter_stop(miter);
 
@@ -513,6 +513,7 @@ static bool sg_miter_skip(struct sg_mapping_iter *miter, off_t offset)
 
 	return true;
 }
+EXPORT_SYMBOL(sg_miter_skip);
 
 /**
  * sg_miter_next - proceed mapping iterator to the next mapping
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] lib/scatterlist: export sg_miter_skip()
  2013-10-29 16:07 [PATCH 1/2] lib/scatterlist: export sg_miter_skip() Ming Lei
@ 2013-10-31 21:47 ` Andrew Morton
  2013-11-01  2:16   ` Ming Lei
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2013-10-31 21:47 UTC (permalink / raw)
  To: Ming Lei
  Cc: linux-kernel, FUJITA Tomonori, Tejun Heo, Jens Axboe,
	Matthew Dharm, Alan Stern, Greg Kroah-Hartman, USB list

On Wed, 30 Oct 2013 00:07:22 +0800 Ming Lei <ming.lei@canonical.com> wrote:

> sg_copy_buffer() can't meet demand for some drrivers(such usb
> mass storage), so we have to use the sg_miter_* APIs to access
> sg buffer, then need export sg_miter_skip() for these drivers.
> 
> The API is needed for converting to sg_miter_* APIs in USB storage
> driver for accessing sg buffer.
> 
> ...
>
> --- a/include/linux/scatterlist.h
> +++ b/include/linux/scatterlist.h
> @@ -345,6 +345,7 @@ struct sg_mapping_iter {
>  
>  void sg_miter_start(struct sg_mapping_iter *miter, struct scatterlist *sgl,
>  		    unsigned int nents, unsigned int flags);
> +bool sg_miter_skip(struct sg_mapping_iter *miter, off_t offset);
>  bool sg_miter_next(struct sg_mapping_iter *miter);
>  void sg_miter_stop(struct sg_mapping_iter *miter);
>  
> diff --git a/lib/scatterlist.c b/lib/scatterlist.c
> index d16fa29..3a8e8e8 100644
> --- a/lib/scatterlist.c
> +++ b/lib/scatterlist.c
> @@ -495,7 +495,7 @@ static bool sg_miter_get_next_page(struct sg_mapping_iter *miter)
>   *   true if @miter contains the valid mapping.  false if end of sg
>   *   list is reached.
>   */
> -static bool sg_miter_skip(struct sg_mapping_iter *miter, off_t offset)
> +bool sg_miter_skip(struct sg_mapping_iter *miter, off_t offset)
>  {
>  	sg_miter_stop(miter);
>  
> @@ -513,6 +513,7 @@ static bool sg_miter_skip(struct sg_mapping_iter *miter, off_t offset)
>  
>  	return true;
>  }
> +EXPORT_SYMBOL(sg_miter_skip);
>  
>  /**
>   * sg_miter_next - proceed mapping iterator to the next mapping

Looks OK to me.  Please include this in whatever tree is used to merge
"[PATCH 2/2] USB: storage: use sg_miter_* APIs to access scsi buffer".


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] lib/scatterlist: export sg_miter_skip()
  2013-10-31 21:47 ` Andrew Morton
@ 2013-11-01  2:16   ` Ming Lei
  0 siblings, 0 replies; 3+ messages in thread
From: Ming Lei @ 2013-11-01  2:16 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Linux Kernel Mailing List, FUJITA Tomonori, Tejun Heo,
	Jens Axboe, Matthew Dharm, Alan Stern, Greg Kroah-Hartman,
	USB list

Hi Andrew,

Thank you for the comment.

On Fri, Nov 1, 2013 at 5:47 AM, Andrew Morton <akpm@linux-foundation.org> wrote:
>
> Looks OK to me.  Please include this in whatever tree is used to merge
> "[PATCH 2/2] USB: storage: use sg_miter_* APIs to access scsi buffer".

Greg and Alan, would you mind reviewing & commenting on 2/2 and merge
the two finally to usb-next tree if you are OK with it?


Thanks,
--
Ming Lei

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-11-01  2:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-29 16:07 [PATCH 1/2] lib/scatterlist: export sg_miter_skip() Ming Lei
2013-10-31 21:47 ` Andrew Morton
2013-11-01  2:16   ` Ming Lei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).