Re: [PATCH 3/3] Final removal of FASTCALL()/fastcall
On Mon, Feb 11, 2008 at 01:17:38PM -0800, Andrew Morton wrote: > On Mon, 11 Feb 2008 10:38:42 -0800 > Harvey Harrison <[EMAIL PROTECTED]> wrote: > > > All users are gone, remove definitions and comments referring > > to them. > > I'm still showing occurrences in: > > ./Documentation/RCU/NMI-RCU.txt > ./Documentation/kprobes.txt > ./Documentation/uml/UserModeLinux-HOWTO.txt > ./kernel/rcupdate.c > > The last one is interesting: > > /* FASTCALL no longer exists, this wrapper may no longer be needed */ > static void wakeme_after_rcu(struct rcu_head *head) > { > struct rcu_synchronize *rcu; > > rcu = container_of(head, struct rcu_synchronize, head); > complete(>completion); > } > > The comment is rather ungrammatical/meaningless. Perhaps it is trying > to tell us that we can remove this function now? Hmmm... A better comment might be something like "Awaken the corresponding synchronize_rcu() instance now that a grace period has completed". Given that the underlying RCU implementation provides callbacks, synchronize_rcu() will need some sort of callback function. So, the question is whether "complete()" can be that callback function. As near as I can tell, the answer is "no", because the RCU callback function always gets a pointer to a struct rcu_head, which would not make much sense to the "complete()" function. In short, I believe that wakeme_after_rcu() needs to stick around. A better comment for wakeme_after_rcu() would be good, perhaps as shown below. Thanx, Paul Signed-off-by: Paul E. McKenney <[EMAIL PROTECTED]> --- rcupdate.c |5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff -urpNa -X dontdiff linux-2.6.24/kernel/rcupdate.c linux-2.6.24-wakeme-comment/kernel/rcupdate.c --- linux-2.6.24/kernel/rcupdate.c 2008-01-24 14:58:37.0 -0800 +++ linux-2.6.24-wakeme-comment/kernel/rcupdate.c 2008-02-11 17:47:11.0 -0800 @@ -601,7 +601,10 @@ struct rcu_synchronize { struct completion completion; }; -/* Because of FASTCALL declaration of complete, we use this wrapper */ +/* + * Awaken the corresponding synchronize_rcu() instance now that a + * grace period has elapsed. + */ static void wakeme_after_rcu(struct rcu_head *head) { struct rcu_synchronize *rcu; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] Final removal of FASTCALL()/fastcall
On Mon, 2008-02-11 at 13:17 -0800, Andrew Morton wrote: > On Mon, 11 Feb 2008 10:38:42 -0800 > Harvey Harrison <[EMAIL PROTECTED]> wrote: > > > All users are gone, remove definitions and comments referring > > to them. > > I'm still showing occurrences in: > > ./Documentation/RCU/NMI-RCU.txt > ./Documentation/kprobes.txt > ./Documentation/uml/UserModeLinux-HOWTO.txt > ./kernel/rcupdate.c > > The last one is interesting: > > /* FASTCALL no longer exists, this wrapper may no longer be needed */ > static void wakeme_after_rcu(struct rcu_head *head) > { > struct rcu_synchronize *rcu; > > rcu = container_of(head, struct rcu_synchronize, head); > complete(>completion); > } > > The comment is rather ungrammatical/meaningless. Perhaps it is trying > to tell us that we can remove this function now? Sorry, I added that as a note in my patch to look into and ended up forgetting about it. The original comment that was there read: /* Because of FASTCALL declaration of complete, we use this wrapper */ Sorry about that, I'll look into the last occurances and send you a patch 4/3. Harvey -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] Final removal of FASTCALL()/fastcall
On Mon, 11 Feb 2008 10:38:42 -0800 Harvey Harrison <[EMAIL PROTECTED]> wrote: > All users are gone, remove definitions and comments referring > to them. I'm still showing occurrences in: ./Documentation/RCU/NMI-RCU.txt ./Documentation/kprobes.txt ./Documentation/uml/UserModeLinux-HOWTO.txt ./kernel/rcupdate.c The last one is interesting: /* FASTCALL no longer exists, this wrapper may no longer be needed */ static void wakeme_after_rcu(struct rcu_head *head) { struct rcu_synchronize *rcu; rcu = container_of(head, struct rcu_synchronize, head); complete(>completion); } The comment is rather ungrammatical/meaningless. Perhaps it is trying to tell us that we can remove this function now? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 3/3] Final removal of FASTCALL()/fastcall
All users are gone, remove definitions and comments referring to them. Signed-off-by: Harvey Harrison <[EMAIL PROTECTED]> --- drivers/char/drm/i830_dma.c |2 +- include/asm-mn10300/highmem.h |4 ++-- include/asm-mn10300/linkage.h |2 -- include/linux/irq.h |1 - include/linux/linkage.h |5 - kernel/rcupdate.c |2 +- 6 files changed, 4 insertions(+), 12 deletions(-) diff --git a/drivers/char/drm/i830_dma.c b/drivers/char/drm/i830_dma.c index 379cbda..9df0810 100644 --- a/drivers/char/drm/i830_dma.c +++ b/drivers/char/drm/i830_dma.c @@ -36,7 +36,7 @@ #include "i830_drm.h" #include "i830_drv.h" #include/* For task queue support */ -#include /* For FASTCALL on unlock_page() */ +#include #include #include diff --git a/include/asm-mn10300/highmem.h b/include/asm-mn10300/highmem.h index 383c0c4..5256854 100644 --- a/include/asm-mn10300/highmem.h +++ b/include/asm-mn10300/highmem.h @@ -42,8 +42,8 @@ extern void __init kmap_init(void); #define PKMAP_NR(virt) ((virt - PKMAP_BASE) >> PAGE_SHIFT) #define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT)) -extern unsigned long __fastcall kmap_high(struct page *page); -extern void __fastcall kunmap_high(struct page *page); +extern unsigned long kmap_high(struct page *page); +extern void kunmap_high(struct page *page); static inline unsigned long kmap(struct page *page) { diff --git a/include/asm-mn10300/linkage.h b/include/asm-mn10300/linkage.h index 29a32e4..dda3002 100644 --- a/include/asm-mn10300/linkage.h +++ b/include/asm-mn10300/linkage.h @@ -13,8 +13,6 @@ /* don't override anything */ #define asmlinkage -#define FASTCALL(x) x -#define fastcall #define __ALIGN.align 4,0xcb #define __ALIGN_STR".align 4,0xcb" diff --git a/include/linux/irq.h b/include/linux/irq.h index bfd9efb..176e5e7 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -285,7 +285,6 @@ extern void handle_bad_irq(unsigned int irq, struct irq_desc *desc); /* * Monolithic do_IRQ implementation. - * (is an explicit fastcall, because i386 4KSTACKS calls it from assembly) */ #ifndef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ extern unsigned int __do_IRQ(unsigned int irq); diff --git a/include/linux/linkage.h b/include/linux/linkage.h index 3faf599..0592936 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h @@ -73,9 +73,4 @@ #define ATTRIB_NORET __attribute__((noreturn)) #define NORET_AND noreturn, -#ifndef FASTCALL -#define FASTCALL(x)x -#define fastcall -#endif - #endif diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c index 760dfc2..0810e78 100644 --- a/kernel/rcupdate.c +++ b/kernel/rcupdate.c @@ -56,7 +56,7 @@ static atomic_t rcu_barrier_cpu_count; static DEFINE_MUTEX(rcu_barrier_mutex); static struct completion rcu_barrier_completion; -/* Because of FASTCALL declaration of complete, we use this wrapper */ +/* FASTCALL no longer exists, this wrapper may no longer be needed */ static void wakeme_after_rcu(struct rcu_head *head) { struct rcu_synchronize *rcu; -- 1.5.4.1219.g65b9 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] Final removal of FASTCALL()/fastcall
On Mon, 2008-02-11 at 13:17 -0800, Andrew Morton wrote: On Mon, 11 Feb 2008 10:38:42 -0800 Harvey Harrison [EMAIL PROTECTED] wrote: All users are gone, remove definitions and comments referring to them. I'm still showing occurrences in: ./Documentation/RCU/NMI-RCU.txt ./Documentation/kprobes.txt ./Documentation/uml/UserModeLinux-HOWTO.txt ./kernel/rcupdate.c The last one is interesting: /* FASTCALL no longer exists, this wrapper may no longer be needed */ static void wakeme_after_rcu(struct rcu_head *head) { struct rcu_synchronize *rcu; rcu = container_of(head, struct rcu_synchronize, head); complete(rcu-completion); } The comment is rather ungrammatical/meaningless. Perhaps it is trying to tell us that we can remove this function now? Sorry, I added that as a note in my patch to look into and ended up forgetting about it. The original comment that was there read: /* Because of FASTCALL declaration of complete, we use this wrapper */ Sorry about that, I'll look into the last occurances and send you a patch 4/3. Harvey -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] Final removal of FASTCALL()/fastcall
On Mon, 11 Feb 2008 10:38:42 -0800 Harvey Harrison [EMAIL PROTECTED] wrote: All users are gone, remove definitions and comments referring to them. I'm still showing occurrences in: ./Documentation/RCU/NMI-RCU.txt ./Documentation/kprobes.txt ./Documentation/uml/UserModeLinux-HOWTO.txt ./kernel/rcupdate.c The last one is interesting: /* FASTCALL no longer exists, this wrapper may no longer be needed */ static void wakeme_after_rcu(struct rcu_head *head) { struct rcu_synchronize *rcu; rcu = container_of(head, struct rcu_synchronize, head); complete(rcu-completion); } The comment is rather ungrammatical/meaningless. Perhaps it is trying to tell us that we can remove this function now? -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 3/3] Final removal of FASTCALL()/fastcall
All users are gone, remove definitions and comments referring to them. Signed-off-by: Harvey Harrison [EMAIL PROTECTED] --- drivers/char/drm/i830_dma.c |2 +- include/asm-mn10300/highmem.h |4 ++-- include/asm-mn10300/linkage.h |2 -- include/linux/irq.h |1 - include/linux/linkage.h |5 - kernel/rcupdate.c |2 +- 6 files changed, 4 insertions(+), 12 deletions(-) diff --git a/drivers/char/drm/i830_dma.c b/drivers/char/drm/i830_dma.c index 379cbda..9df0810 100644 --- a/drivers/char/drm/i830_dma.c +++ b/drivers/char/drm/i830_dma.c @@ -36,7 +36,7 @@ #include i830_drm.h #include i830_drv.h #include linux/interrupt.h /* For task queue support */ -#include linux/pagemap.h /* For FASTCALL on unlock_page() */ +#include linux/pagemap.h #include linux/delay.h #include asm/uaccess.h diff --git a/include/asm-mn10300/highmem.h b/include/asm-mn10300/highmem.h index 383c0c4..5256854 100644 --- a/include/asm-mn10300/highmem.h +++ b/include/asm-mn10300/highmem.h @@ -42,8 +42,8 @@ extern void __init kmap_init(void); #define PKMAP_NR(virt) ((virt - PKMAP_BASE) PAGE_SHIFT) #define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) PAGE_SHIFT)) -extern unsigned long __fastcall kmap_high(struct page *page); -extern void __fastcall kunmap_high(struct page *page); +extern unsigned long kmap_high(struct page *page); +extern void kunmap_high(struct page *page); static inline unsigned long kmap(struct page *page) { diff --git a/include/asm-mn10300/linkage.h b/include/asm-mn10300/linkage.h index 29a32e4..dda3002 100644 --- a/include/asm-mn10300/linkage.h +++ b/include/asm-mn10300/linkage.h @@ -13,8 +13,6 @@ /* don't override anything */ #define asmlinkage -#define FASTCALL(x) x -#define fastcall #define __ALIGN.align 4,0xcb #define __ALIGN_STR.align 4,0xcb diff --git a/include/linux/irq.h b/include/linux/irq.h index bfd9efb..176e5e7 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -285,7 +285,6 @@ extern void handle_bad_irq(unsigned int irq, struct irq_desc *desc); /* * Monolithic do_IRQ implementation. - * (is an explicit fastcall, because i386 4KSTACKS calls it from assembly) */ #ifndef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ extern unsigned int __do_IRQ(unsigned int irq); diff --git a/include/linux/linkage.h b/include/linux/linkage.h index 3faf599..0592936 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h @@ -73,9 +73,4 @@ #define ATTRIB_NORET __attribute__((noreturn)) #define NORET_AND noreturn, -#ifndef FASTCALL -#define FASTCALL(x)x -#define fastcall -#endif - #endif diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c index 760dfc2..0810e78 100644 --- a/kernel/rcupdate.c +++ b/kernel/rcupdate.c @@ -56,7 +56,7 @@ static atomic_t rcu_barrier_cpu_count; static DEFINE_MUTEX(rcu_barrier_mutex); static struct completion rcu_barrier_completion; -/* Because of FASTCALL declaration of complete, we use this wrapper */ +/* FASTCALL no longer exists, this wrapper may no longer be needed */ static void wakeme_after_rcu(struct rcu_head *head) { struct rcu_synchronize *rcu; -- 1.5.4.1219.g65b9 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] Final removal of FASTCALL()/fastcall
On Mon, Feb 11, 2008 at 01:17:38PM -0800, Andrew Morton wrote: On Mon, 11 Feb 2008 10:38:42 -0800 Harvey Harrison [EMAIL PROTECTED] wrote: All users are gone, remove definitions and comments referring to them. I'm still showing occurrences in: ./Documentation/RCU/NMI-RCU.txt ./Documentation/kprobes.txt ./Documentation/uml/UserModeLinux-HOWTO.txt ./kernel/rcupdate.c The last one is interesting: /* FASTCALL no longer exists, this wrapper may no longer be needed */ static void wakeme_after_rcu(struct rcu_head *head) { struct rcu_synchronize *rcu; rcu = container_of(head, struct rcu_synchronize, head); complete(rcu-completion); } The comment is rather ungrammatical/meaningless. Perhaps it is trying to tell us that we can remove this function now? Hmmm... A better comment might be something like Awaken the corresponding synchronize_rcu() instance now that a grace period has completed. Given that the underlying RCU implementation provides callbacks, synchronize_rcu() will need some sort of callback function. So, the question is whether complete() can be that callback function. As near as I can tell, the answer is no, because the RCU callback function always gets a pointer to a struct rcu_head, which would not make much sense to the complete() function. In short, I believe that wakeme_after_rcu() needs to stick around. A better comment for wakeme_after_rcu() would be good, perhaps as shown below. Thanx, Paul Signed-off-by: Paul E. McKenney [EMAIL PROTECTED] --- rcupdate.c |5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff -urpNa -X dontdiff linux-2.6.24/kernel/rcupdate.c linux-2.6.24-wakeme-comment/kernel/rcupdate.c --- linux-2.6.24/kernel/rcupdate.c 2008-01-24 14:58:37.0 -0800 +++ linux-2.6.24-wakeme-comment/kernel/rcupdate.c 2008-02-11 17:47:11.0 -0800 @@ -601,7 +601,10 @@ struct rcu_synchronize { struct completion completion; }; -/* Because of FASTCALL declaration of complete, we use this wrapper */ +/* + * Awaken the corresponding synchronize_rcu() instance now that a + * grace period has elapsed. + */ static void wakeme_after_rcu(struct rcu_head *head) { struct rcu_synchronize *rcu; -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/