* [PATCH 1/2] Fix misleading comment in bio.h
@ 2009-02-02 0:07 Alberto Bertogli
2009-02-02 0:07 ` [PATCH 2/2] bio.h: If they MUST be inlined, then use __always_inline Alberto Bertogli
0 siblings, 1 reply; 7+ messages in thread
From: Alberto Bertogli @ 2009-02-02 0:07 UTC (permalink / raw)
To: axboe; +Cc: linux-kernel, Alberto Bertogli
The comment says "remember to add offset!", but the function already adds
it.
Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>
---
include/linux/bio.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/bio.h b/include/linux/bio.h
index 18462c5..0c8e3fb 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -440,8 +440,8 @@ extern struct biovec_slab bvec_slabs[BIOVEC_NR_POOLS] __read_mostly;
#ifdef CONFIG_HIGHMEM
/*
- * remember to add offset! and never ever reenable interrupts between a
- * bvec_kmap_irq and bvec_kunmap_irq!!
+ * remember never ever reenable interrupts between a bvec_kmap_irq and
+ * bvec_kunmap_irq!
*
* This function MUST be inlined - it plays with the CPU interrupt flags.
*/
--
1.6.1.1.363.g2a3bd
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/2] bio.h: If they MUST be inlined, then use __always_inline
2009-02-02 0:07 [PATCH 1/2] Fix misleading comment in bio.h Alberto Bertogli
@ 2009-02-02 0:07 ` Alberto Bertogli
2009-02-02 11:41 ` Jens Axboe
2009-02-03 8:51 ` Andrew Morton
0 siblings, 2 replies; 7+ messages in thread
From: Alberto Bertogli @ 2009-02-02 0:07 UTC (permalink / raw)
To: axboe; +Cc: linux-kernel, Alberto Bertogli
bvec_kmap_irq() and bvec_kunmap_irq() comments say they MUST be inlined,
so mark them as __always_inline.
Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>
---
include/linux/bio.h | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/linux/bio.h b/include/linux/bio.h
index 0c8e3fb..713ec6e 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -445,7 +445,8 @@ extern struct biovec_slab bvec_slabs[BIOVEC_NR_POOLS] __read_mostly;
*
* This function MUST be inlined - it plays with the CPU interrupt flags.
*/
-static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags)
+static __always_inline char *bvec_kmap_irq(struct bio_vec *bvec,
+ unsigned long *flags)
{
unsigned long addr;
@@ -461,7 +462,8 @@ static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags)
return (char *) addr + bvec->bv_offset;
}
-static inline void bvec_kunmap_irq(char *buffer, unsigned long *flags)
+static __always_inline void bvec_kunmap_irq(char *buffer,
+ unsigned long *flags)
{
unsigned long ptr = (unsigned long) buffer & PAGE_MASK;
--
1.6.1.1.363.g2a3bd
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH 2/2] bio.h: If they MUST be inlined, then use __always_inline
2009-02-02 0:07 ` [PATCH 2/2] bio.h: If they MUST be inlined, then use __always_inline Alberto Bertogli
@ 2009-02-02 11:41 ` Jens Axboe
2009-02-03 8:51 ` Andrew Morton
1 sibling, 0 replies; 7+ messages in thread
From: Jens Axboe @ 2009-02-02 11:41 UTC (permalink / raw)
To: Alberto Bertogli; +Cc: linux-kernel
On Sun, Feb 01 2009, Alberto Bertogli wrote:
> bvec_kmap_irq() and bvec_kunmap_irq() comments say they MUST be inlined,
> so mark them as __always_inline.
Thanks Alberto, applied 1-2.
--
Jens Axboe
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] bio.h: If they MUST be inlined, then use __always_inline
2009-02-02 0:07 ` [PATCH 2/2] bio.h: If they MUST be inlined, then use __always_inline Alberto Bertogli
2009-02-02 11:41 ` Jens Axboe
@ 2009-02-03 8:51 ` Andrew Morton
2009-02-03 8:51 ` Jens Axboe
1 sibling, 1 reply; 7+ messages in thread
From: Andrew Morton @ 2009-02-03 8:51 UTC (permalink / raw)
To: Alberto Bertogli; +Cc: axboe, linux-kernel
On Sun, 1 Feb 2009 22:07:31 -0200 Alberto Bertogli <albertito@blitiri.com.ar> wrote:
> bvec_kmap_irq() and bvec_kunmap_irq() comments say they MUST be inlined,
> so mark them as __always_inline.
>
> Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>
> ---
> include/linux/bio.h | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/bio.h b/include/linux/bio.h
> index 0c8e3fb..713ec6e 100644
> --- a/include/linux/bio.h
> +++ b/include/linux/bio.h
> @@ -445,7 +445,8 @@ extern struct biovec_slab bvec_slabs[BIOVEC_NR_POOLS] __read_mostly;
> *
> * This function MUST be inlined - it plays with the CPU interrupt flags.
> */
> -static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags)
> +static __always_inline char *bvec_kmap_irq(struct bio_vec *bvec,
> + unsigned long *flags)
The comment is wrong - this was a sparc requirement, long since removed.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] bio.h: If they MUST be inlined, then use __always_inline
2009-02-03 8:51 ` Andrew Morton
@ 2009-02-03 8:51 ` Jens Axboe
2009-02-04 18:45 ` [PATCH] Do not __always_inline bvec_kmap_irq() and bvec_kunmap_irq() Alberto Bertogli
0 siblings, 1 reply; 7+ messages in thread
From: Jens Axboe @ 2009-02-03 8:51 UTC (permalink / raw)
To: Andrew Morton; +Cc: Alberto Bertogli, linux-kernel
On Tue, Feb 03 2009, Andrew Morton wrote:
> On Sun, 1 Feb 2009 22:07:31 -0200 Alberto Bertogli <albertito@blitiri.com.ar> wrote:
>
> > bvec_kmap_irq() and bvec_kunmap_irq() comments say they MUST be inlined,
> > so mark them as __always_inline.
> >
> > Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>
> > ---
> > include/linux/bio.h | 6 ++++--
> > 1 files changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/include/linux/bio.h b/include/linux/bio.h
> > index 0c8e3fb..713ec6e 100644
> > --- a/include/linux/bio.h
> > +++ b/include/linux/bio.h
> > @@ -445,7 +445,8 @@ extern struct biovec_slab bvec_slabs[BIOVEC_NR_POOLS] __read_mostly;
> > *
> > * This function MUST be inlined - it plays with the CPU interrupt flags.
> > */
> > -static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags)
> > +static __always_inline char *bvec_kmap_irq(struct bio_vec *bvec,
> > + unsigned long *flags)
>
> The comment is wrong - this was a sparc requirement, long since removed.
The comment probably dates back to around 2001 or so, I wasn't aware
that the non-local irq flags requirement had since been voided on sparc.
--
Jens Axboe
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH] Do not __always_inline bvec_kmap_irq() and bvec_kunmap_irq()
2009-02-03 8:51 ` Jens Axboe
@ 2009-02-04 18:45 ` Alberto Bertogli
2009-02-04 18:49 ` Alberto Bertogli
0 siblings, 1 reply; 7+ messages in thread
From: Alberto Bertogli @ 2009-02-04 18:45 UTC (permalink / raw)
To: axboe; +Cc: linux-kernel, Alberto Bertogli
On Tue, Feb 03 2009, Andrew Morton wrote:
> The comment is wrong - this was a sparc requirement, long since removed.
So remove both the comment and the inline requirement, going back to the
inline hint.
Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>
---
So I came up with this, but I'm not sure if it's better than just avoid the
inline and placing them somewhere else. If you want me to write a different
patch, let me know.
Thanks a lot,
Alberto
include/linux/bio.h | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/include/linux/bio.h b/include/linux/bio.h
index 713ec6e..20bcc51 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -442,10 +442,8 @@ extern struct biovec_slab bvec_slabs[BIOVEC_NR_POOLS] __read_mostly;
/*
* remember never ever reenable interrupts between a bvec_kmap_irq and
* bvec_kunmap_irq!
- *
- * This function MUST be inlined - it plays with the CPU interrupt flags.
*/
-static __always_inline char *bvec_kmap_irq(struct bio_vec *bvec,
+static inline char *bvec_kmap_irq(struct bio_vec *bvec,
unsigned long *flags)
{
unsigned long addr;
@@ -462,7 +460,7 @@ static __always_inline char *bvec_kmap_irq(struct bio_vec *bvec,
return (char *) addr + bvec->bv_offset;
}
-static __always_inline void bvec_kunmap_irq(char *buffer,
+static inline void bvec_kunmap_irq(char *buffer,
unsigned long *flags)
{
unsigned long ptr = (unsigned long) buffer & PAGE_MASK;
--
1.6.1.1.363.g2a3bd
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH] Do not __always_inline bvec_kmap_irq() and bvec_kunmap_irq()
2009-02-04 18:45 ` [PATCH] Do not __always_inline bvec_kmap_irq() and bvec_kunmap_irq() Alberto Bertogli
@ 2009-02-04 18:49 ` Alberto Bertogli
0 siblings, 0 replies; 7+ messages in thread
From: Alberto Bertogli @ 2009-02-04 18:49 UTC (permalink / raw)
To: axboe; +Cc: linux-kernel, akpm, Alberto Bertogli
On Tue, Feb 03 2009, Andrew Morton wrote:
> The comment is wrong - this was a sparc requirement, long since removed.
So remove both the comment and the inline requirement, going back to the
inline hint.
Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>
---
This is the same patch as before, except it's properly indented because
everything fits < 80 columns or so.
include/linux/bio.h | 8 ++------
1 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/include/linux/bio.h b/include/linux/bio.h
index 713ec6e..972a0e4 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -442,11 +442,8 @@ extern struct biovec_slab bvec_slabs[BIOVEC_NR_POOLS] __read_mostly;
/*
* remember never ever reenable interrupts between a bvec_kmap_irq and
* bvec_kunmap_irq!
- *
- * This function MUST be inlined - it plays with the CPU interrupt flags.
*/
-static __always_inline char *bvec_kmap_irq(struct bio_vec *bvec,
- unsigned long *flags)
+static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags)
{
unsigned long addr;
@@ -462,8 +459,7 @@ static __always_inline char *bvec_kmap_irq(struct bio_vec *bvec,
return (char *) addr + bvec->bv_offset;
}
-static __always_inline void bvec_kunmap_irq(char *buffer,
- unsigned long *flags)
+static inline void bvec_kunmap_irq(char *buffer, unsigned long *flags)
{
unsigned long ptr = (unsigned long) buffer & PAGE_MASK;
--
1.6.1.1.363.g2a3bd
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-02-04 19:07 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-02 0:07 [PATCH 1/2] Fix misleading comment in bio.h Alberto Bertogli
2009-02-02 0:07 ` [PATCH 2/2] bio.h: If they MUST be inlined, then use __always_inline Alberto Bertogli
2009-02-02 11:41 ` Jens Axboe
2009-02-03 8:51 ` Andrew Morton
2009-02-03 8:51 ` Jens Axboe
2009-02-04 18:45 ` [PATCH] Do not __always_inline bvec_kmap_irq() and bvec_kunmap_irq() Alberto Bertogli
2009-02-04 18:49 ` Alberto Bertogli
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox