* [KJ][PATCH] is_power_of_2 in ia64mm @ 2007-02-16 12:03 ` Vignesh Babu BM 0 siblings, 0 replies; 47+ messages in thread From: Vignesh Babu BM @ 2007-02-16 12:03 UTC (permalink / raw) To: Kernel Janitors List; +Cc: tony.luck, linux-ia64, linux-mm, linux-kernel Replacing (n & (n-1)) in the context of power of 2 checks with is_power_of_2 diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c index 0c7e94e..0ccc70e 100644 --- a/arch/ia64/mm/hugetlbpage.c +++ b/arch/ia64/mm/hugetlbpage.c @@ -16,6 +16,7 @@ #include <linux/smp_lock.h> #include <linux/slab.h> #include <linux/sysctl.h> +#include <linux/log2.h> #include <asm/mman.h> #include <asm/pgalloc.h> #include <asm/tlb.h> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) tr_pages = 0x15557000UL; size = memparse(str, &str); - if (*str || (size & (size-1)) || !(tr_pages & size) || + if (*str || !is_power_of_2(size) || !(tr_pages & size) || size <= PAGE_SIZE || size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { printk(KERN_WARNING "Invalid huge page size specified\n"); -- Regards, Vignesh Babu BM _____________________________________________________________ "Why is it that every time I'm with you, makes me believe in magic?" ^ permalink raw reply related [flat|nested] 47+ messages in thread
* [KJ][PATCH] is_power_of_2 in ia64mm @ 2007-02-16 12:03 ` Vignesh Babu BM 0 siblings, 0 replies; 47+ messages in thread From: Vignesh Babu BM @ 2007-02-16 12:15 UTC (permalink / raw) To: Kernel Janitors List; +Cc: tony.luck, linux-ia64, linux-mm, linux-kernel Replacing (n & (n-1)) in the context of power of 2 checks with is_power_of_2 diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c index 0c7e94e..0ccc70e 100644 --- a/arch/ia64/mm/hugetlbpage.c +++ b/arch/ia64/mm/hugetlbpage.c @@ -16,6 +16,7 @@ #include <linux/smp_lock.h> #include <linux/slab.h> #include <linux/sysctl.h> +#include <linux/log2.h> #include <asm/mman.h> #include <asm/pgalloc.h> #include <asm/tlb.h> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) tr_pages = 0x15557000UL; size = memparse(str, &str); - if (*str || (size & (size-1)) || !(tr_pages & size) || + if (*str || !is_power_of_2(size) || !(tr_pages & size) || size <= PAGE_SIZE || size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { printk(KERN_WARNING "Invalid huge page size specified\n"); -- Regards, Vignesh Babu BM _____________________________________________________________ "Why is it that every time I'm with you, makes me believe in magic?" ^ permalink raw reply related [flat|nested] 47+ messages in thread
* [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 12:03 ` Vignesh Babu BM 0 siblings, 0 replies; 47+ messages in thread From: Vignesh Babu BM @ 2007-02-16 12:15 UTC (permalink / raw) To: Kernel Janitors List; +Cc: tony.luck, linux-ia64, linux-mm, linux-kernel Replacing (n & (n-1)) in the context of power of 2 checks with is_power_of_2 diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c index 0c7e94e..0ccc70e 100644 --- a/arch/ia64/mm/hugetlbpage.c +++ b/arch/ia64/mm/hugetlbpage.c @@ -16,6 +16,7 @@ #include <linux/smp_lock.h> #include <linux/slab.h> #include <linux/sysctl.h> +#include <linux/log2.h> #include <asm/mman.h> #include <asm/pgalloc.h> #include <asm/tlb.h> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) tr_pages = 0x15557000UL; size = memparse(str, &str); - if (*str || (size & (size-1)) || !(tr_pages & size) || + if (*str || !is_power_of_2(size) || !(tr_pages & size) || size <= PAGE_SIZE || size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { printk(KERN_WARNING "Invalid huge page size specified\n"); -- Regards, Vignesh Babu BM _____________________________________________________________ "Why is it that every time I'm with you, makes me believe in magic?" _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.osdl.org https://lists.osdl.org/mailman/listinfo/kernel-janitors ^ permalink raw reply related [flat|nested] 47+ messages in thread
* [KJ][PATCH] is_power_of_2 in ia64mm @ 2007-02-16 12:03 ` Vignesh Babu BM 0 siblings, 0 replies; 47+ messages in thread From: Vignesh Babu BM @ 2007-02-16 12:03 UTC (permalink / raw) To: Kernel Janitors List; +Cc: tony.luck, linux-ia64, linux-mm, linux-kernel Replacing (n & (n-1)) in the context of power of 2 checks with is_power_of_2 diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c index 0c7e94e..0ccc70e 100644 --- a/arch/ia64/mm/hugetlbpage.c +++ b/arch/ia64/mm/hugetlbpage.c @@ -16,6 +16,7 @@ #include <linux/smp_lock.h> #include <linux/slab.h> #include <linux/sysctl.h> +#include <linux/log2.h> #include <asm/mman.h> #include <asm/pgalloc.h> #include <asm/tlb.h> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) tr_pages = 0x15557000UL; size = memparse(str, &str); - if (*str || (size & (size-1)) || !(tr_pages & size) || + if (*str || !is_power_of_2(size) || !(tr_pages & size) || size <= PAGE_SIZE || size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { printk(KERN_WARNING "Invalid huge page size specified\n"); -- Regards, Vignesh Babu BM _____________________________________________________________ "Why is it that every time I'm with you, makes me believe in magic?" -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm 2007-02-16 12:03 ` [KJ][PATCH] " Vignesh Babu BM (?) (?) @ 2007-02-16 15:02 ` Richard Knutsson -1 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 15:02 UTC (permalink / raw) To: Vignesh Babu BM Cc: Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Vignesh Babu BM wrote: > Replacing (n & (n-1)) in the context of power of 2 checks > with is_power_of_2 > > > diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c > index 0c7e94e..0ccc70e 100644 > --- a/arch/ia64/mm/hugetlbpage.c > +++ b/arch/ia64/mm/hugetlbpage.c > @@ -16,6 +16,7 @@ > #include <linux/smp_lock.h> > #include <linux/slab.h> > #include <linux/sysctl.h> > +#include <linux/log2.h> > #include <asm/mman.h> > #include <asm/pgalloc.h> > #include <asm/tlb.h> > @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) > tr_pages = 0x15557000UL; > > size = memparse(str, &str); > - if (*str || (size & (size-1)) || !(tr_pages & size) || > + if (*str || !is_power_of_2(size) || !(tr_pages & size) || > size <= PAGE_SIZE || > size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { > printk(KERN_WARNING "Invalid huge page size specified\n"); > > As we talked about before; is this really correct? !is_power_of_2(0) = true while (0 & (0-1)) = 0. Richard Knutsson _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.osdl.org https://lists.osdl.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 15:02 ` Richard Knutsson 0 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 15:02 UTC (permalink / raw) To: Vignesh Babu BM Cc: Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Vignesh Babu BM wrote: > Replacing (n & (n-1)) in the context of power of 2 checks > with is_power_of_2 > > > diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c > index 0c7e94e..0ccc70e 100644 > --- a/arch/ia64/mm/hugetlbpage.c > +++ b/arch/ia64/mm/hugetlbpage.c > @@ -16,6 +16,7 @@ > #include <linux/smp_lock.h> > #include <linux/slab.h> > #include <linux/sysctl.h> > +#include <linux/log2.h> > #include <asm/mman.h> > #include <asm/pgalloc.h> > #include <asm/tlb.h> > @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) > tr_pages = 0x15557000UL; > > size = memparse(str, &str); > - if (*str || (size & (size-1)) || !(tr_pages & size) || > + if (*str || !is_power_of_2(size) || !(tr_pages & size) || > size <= PAGE_SIZE || > size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { > printk(KERN_WARNING "Invalid huge page size specified\n"); > > As we talked about before; is this really correct? !is_power_of_2(0) == true while (0 & (0-1)) == 0. Richard Knutsson -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 15:02 ` Richard Knutsson 0 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 15:02 UTC (permalink / raw) To: Vignesh Babu BM Cc: Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Vignesh Babu BM wrote: > Replacing (n & (n-1)) in the context of power of 2 checks > with is_power_of_2 > > > diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c > index 0c7e94e..0ccc70e 100644 > --- a/arch/ia64/mm/hugetlbpage.c > +++ b/arch/ia64/mm/hugetlbpage.c > @@ -16,6 +16,7 @@ > #include <linux/smp_lock.h> > #include <linux/slab.h> > #include <linux/sysctl.h> > +#include <linux/log2.h> > #include <asm/mman.h> > #include <asm/pgalloc.h> > #include <asm/tlb.h> > @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) > tr_pages = 0x15557000UL; > > size = memparse(str, &str); > - if (*str || (size & (size-1)) || !(tr_pages & size) || > + if (*str || !is_power_of_2(size) || !(tr_pages & size) || > size <= PAGE_SIZE || > size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { > printk(KERN_WARNING "Invalid huge page size specified\n"); > > As we talked about before; is this really correct? !is_power_of_2(0) == true while (0 & (0-1)) == 0. Richard Knutsson ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 15:02 ` Richard Knutsson 0 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 15:02 UTC (permalink / raw) To: Vignesh Babu BM Cc: Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Vignesh Babu BM wrote: > Replacing (n & (n-1)) in the context of power of 2 checks > with is_power_of_2 > > > diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c > index 0c7e94e..0ccc70e 100644 > --- a/arch/ia64/mm/hugetlbpage.c > +++ b/arch/ia64/mm/hugetlbpage.c > @@ -16,6 +16,7 @@ > #include <linux/smp_lock.h> > #include <linux/slab.h> > #include <linux/sysctl.h> > +#include <linux/log2.h> > #include <asm/mman.h> > #include <asm/pgalloc.h> > #include <asm/tlb.h> > @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) > tr_pages = 0x15557000UL; > > size = memparse(str, &str); > - if (*str || (size & (size-1)) || !(tr_pages & size) || > + if (*str || !is_power_of_2(size) || !(tr_pages & size) || > size <= PAGE_SIZE || > size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { > printk(KERN_WARNING "Invalid huge page size specified\n"); > > As we talked about before; is this really correct? !is_power_of_2(0) = true while (0 & (0-1)) = 0. Richard Knutsson ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm 2007-02-16 15:02 ` Richard Knutsson (?) (?) @ 2007-02-16 15:13 ` Andreas Schwab -1 siblings, 0 replies; 47+ messages in thread From: Andreas Schwab @ 2007-02-16 15:13 UTC (permalink / raw) To: Richard Knutsson Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Richard Knutsson <ricknu-0@student.ltu.se> writes: > Vignesh Babu BM wrote: >> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >> tr_pages = 0x15557000UL; >> size = memparse(str, &str); >> - if (*str || (size & (size-1)) || !(tr_pages & size) || >> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >> size <= PAGE_SIZE || >> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >> printk(KERN_WARNING "Invalid huge page size specified\n"); >> >> > As we talked about before; is this really correct? !is_power_of_2(0) = > true while (0 & (0-1)) = 0. size = 0 is also covered by the next two conditions, so the overall value does not change. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.osdl.org https://lists.osdl.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 15:13 ` Andreas Schwab 0 siblings, 0 replies; 47+ messages in thread From: Andreas Schwab @ 2007-02-16 15:13 UTC (permalink / raw) To: Richard Knutsson Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Richard Knutsson <ricknu-0@student.ltu.se> writes: > Vignesh Babu BM wrote: >> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >> tr_pages = 0x15557000UL; >> size = memparse(str, &str); >> - if (*str || (size & (size-1)) || !(tr_pages & size) || >> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >> size <= PAGE_SIZE || >> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >> printk(KERN_WARNING "Invalid huge page size specified\n"); >> >> > As we talked about before; is this really correct? !is_power_of_2(0) == > true while (0 & (0-1)) == 0. size == 0 is also covered by the next two conditions, so the overall value does not change. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstrasse 5, 90409 Nurnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 15:13 ` Andreas Schwab 0 siblings, 0 replies; 47+ messages in thread From: Andreas Schwab @ 2007-02-16 15:13 UTC (permalink / raw) To: Richard Knutsson Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Richard Knutsson <ricknu-0@student.ltu.se> writes: > Vignesh Babu BM wrote: >> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >> tr_pages = 0x15557000UL; >> size = memparse(str, &str); >> - if (*str || (size & (size-1)) || !(tr_pages & size) || >> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >> size <= PAGE_SIZE || >> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >> printk(KERN_WARNING "Invalid huge page size specified\n"); >> >> > As we talked about before; is this really correct? !is_power_of_2(0) == > true while (0 & (0-1)) == 0. size == 0 is also covered by the next two conditions, so the overall value does not change. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 15:13 ` Andreas Schwab 0 siblings, 0 replies; 47+ messages in thread From: Andreas Schwab @ 2007-02-16 15:13 UTC (permalink / raw) To: Richard Knutsson Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Richard Knutsson <ricknu-0@student.ltu.se> writes: > Vignesh Babu BM wrote: >> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >> tr_pages = 0x15557000UL; >> size = memparse(str, &str); >> - if (*str || (size & (size-1)) || !(tr_pages & size) || >> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >> size <= PAGE_SIZE || >> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >> printk(KERN_WARNING "Invalid huge page size specified\n"); >> >> > As we talked about before; is this really correct? !is_power_of_2(0) = > true while (0 & (0-1)) = 0. size = 0 is also covered by the next two conditions, so the overall value does not change. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm 2007-02-16 15:13 ` Andreas Schwab (?) (?) @ 2007-02-16 15:57 ` Richard Knutsson -1 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 15:57 UTC (permalink / raw) To: Andreas Schwab Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Andreas Schwab wrote: > Richard Knutsson <ricknu-0@student.ltu.se> writes: > > >> Vignesh Babu BM wrote: >> >>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>> tr_pages = 0x15557000UL; >>> size = memparse(str, &str); >>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>> size <= PAGE_SIZE || >>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>> >>> >>> >> As we talked about before; is this really correct? !is_power_of_2(0) = >> true while (0 & (0-1)) = 0. >> > > size = 0 is also covered by the next two conditions, so the overall value > does not change. > Yes, but is it meant to state that 'size' is not a power of two? Otherwise, imho, it should be left as-is. Richard Knutsson _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.osdl.org https://lists.osdl.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 15:57 ` Richard Knutsson 0 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 15:57 UTC (permalink / raw) To: Andreas Schwab Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Andreas Schwab wrote: > Richard Knutsson <ricknu-0@student.ltu.se> writes: > > >> Vignesh Babu BM wrote: >> >>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>> tr_pages = 0x15557000UL; >>> size = memparse(str, &str); >>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>> size <= PAGE_SIZE || >>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>> >>> >>> >> As we talked about before; is this really correct? !is_power_of_2(0) == >> true while (0 & (0-1)) == 0. >> > > size == 0 is also covered by the next two conditions, so the overall value > does not change. > Yes, but is it meant to state that 'size' is not a power of two? Otherwise, imho, it should be left as-is. Richard Knutsson -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 15:57 ` Richard Knutsson 0 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 15:57 UTC (permalink / raw) To: Andreas Schwab Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Andreas Schwab wrote: > Richard Knutsson <ricknu-0@student.ltu.se> writes: > > >> Vignesh Babu BM wrote: >> >>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>> tr_pages = 0x15557000UL; >>> size = memparse(str, &str); >>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>> size <= PAGE_SIZE || >>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>> >>> >>> >> As we talked about before; is this really correct? !is_power_of_2(0) == >> true while (0 & (0-1)) == 0. >> > > size == 0 is also covered by the next two conditions, so the overall value > does not change. > Yes, but is it meant to state that 'size' is not a power of two? Otherwise, imho, it should be left as-is. Richard Knutsson ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 15:57 ` Richard Knutsson 0 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 15:57 UTC (permalink / raw) To: Andreas Schwab Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Andreas Schwab wrote: > Richard Knutsson <ricknu-0@student.ltu.se> writes: > > >> Vignesh Babu BM wrote: >> >>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>> tr_pages = 0x15557000UL; >>> size = memparse(str, &str); >>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>> size <= PAGE_SIZE || >>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>> >>> >>> >> As we talked about before; is this really correct? !is_power_of_2(0) = >> true while (0 & (0-1)) = 0. >> > > size = 0 is also covered by the next two conditions, so the overall value > does not change. > Yes, but is it meant to state that 'size' is not a power of two? Otherwise, imho, it should be left as-is. Richard Knutsson ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm 2007-02-16 15:57 ` Richard Knutsson (?) (?) @ 2007-02-16 15:59 ` Andreas Schwab -1 siblings, 0 replies; 47+ messages in thread From: Andreas Schwab @ 2007-02-16 15:59 UTC (permalink / raw) To: Richard Knutsson Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Richard Knutsson <ricknu-0@student.ltu.se> writes: > Andreas Schwab wrote: >> Richard Knutsson <ricknu-0@student.ltu.se> writes: >> >> >>> Vignesh Babu BM wrote: >>> >>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>> tr_pages = 0x15557000UL; >>>> size = memparse(str, &str); >>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>> size <= PAGE_SIZE || >>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>> >>>> >>> As we talked about before; is this really correct? !is_power_of_2(0) = >>> true while (0 & (0-1)) = 0. >>> >> >> size = 0 is also covered by the next two conditions, so the overall value >> does not change. >> > Yes, but is it meant to state that 'size' is not a power of two? What else can it mean? Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.osdl.org https://lists.osdl.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 15:59 ` Andreas Schwab 0 siblings, 0 replies; 47+ messages in thread From: Andreas Schwab @ 2007-02-16 15:59 UTC (permalink / raw) To: Richard Knutsson Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Richard Knutsson <ricknu-0@student.ltu.se> writes: > Andreas Schwab wrote: >> Richard Knutsson <ricknu-0@student.ltu.se> writes: >> >> >>> Vignesh Babu BM wrote: >>> >>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>> tr_pages = 0x15557000UL; >>>> size = memparse(str, &str); >>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>> size <= PAGE_SIZE || >>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>> >>>> >>> As we talked about before; is this really correct? !is_power_of_2(0) == >>> true while (0 & (0-1)) == 0. >>> >> >> size == 0 is also covered by the next two conditions, so the overall value >> does not change. >> > Yes, but is it meant to state that 'size' is not a power of two? What else can it mean? Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstrasse 5, 90409 Nurnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 15:59 ` Andreas Schwab 0 siblings, 0 replies; 47+ messages in thread From: Andreas Schwab @ 2007-02-16 15:59 UTC (permalink / raw) To: Richard Knutsson Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Richard Knutsson <ricknu-0@student.ltu.se> writes: > Andreas Schwab wrote: >> Richard Knutsson <ricknu-0@student.ltu.se> writes: >> >> >>> Vignesh Babu BM wrote: >>> >>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>> tr_pages = 0x15557000UL; >>>> size = memparse(str, &str); >>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>> size <= PAGE_SIZE || >>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>> >>>> >>> As we talked about before; is this really correct? !is_power_of_2(0) == >>> true while (0 & (0-1)) == 0. >>> >> >> size == 0 is also covered by the next two conditions, so the overall value >> does not change. >> > Yes, but is it meant to state that 'size' is not a power of two? What else can it mean? Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 15:59 ` Andreas Schwab 0 siblings, 0 replies; 47+ messages in thread From: Andreas Schwab @ 2007-02-16 15:59 UTC (permalink / raw) To: Richard Knutsson Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Richard Knutsson <ricknu-0@student.ltu.se> writes: > Andreas Schwab wrote: >> Richard Knutsson <ricknu-0@student.ltu.se> writes: >> >> >>> Vignesh Babu BM wrote: >>> >>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>> tr_pages = 0x15557000UL; >>>> size = memparse(str, &str); >>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>> size <= PAGE_SIZE || >>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>> >>>> >>> As we talked about before; is this really correct? !is_power_of_2(0) = >>> true while (0 & (0-1)) = 0. >>> >> >> size = 0 is also covered by the next two conditions, so the overall value >> does not change. >> > Yes, but is it meant to state that 'size' is not a power of two? What else can it mean? Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm 2007-02-16 15:59 ` Andreas Schwab (?) (?) @ 2007-02-16 16:40 ` Richard Knutsson -1 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 16:40 UTC (permalink / raw) To: Andreas Schwab Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Andreas Schwab wrote: > Richard Knutsson <ricknu-0@student.ltu.se> writes: > >> Andreas Schwab wrote: >> >>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>> >>> >>>> Vignesh Babu BM wrote: >>>> >>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>>> tr_pages = 0x15557000UL; >>>>> size = memparse(str, &str); >>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>>> size <= PAGE_SIZE || >>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>>> >>>> As we talked about before; is this really correct? !is_power_of_2(0) = >>>> true while (0 & (0-1)) = 0. >>>> >>> size = 0 is also covered by the next two conditions, so the overall value >>> does not change. >>> >> Yes, but is it meant to state that 'size' is not a power of two? >> > > What else can it mean? > What about !one_or_less_bit()? It has not been implemented (yet?) but been discussed. It ended by concluding that is_power_of_2() should be fixed up first and then we can see about it. And as I stated before; !is_power_of_2(size) != (size & (size-1))! It may be a bug but then we have to be sure it is suppose to be the power of 2. Richard Knutsson _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.osdl.org https://lists.osdl.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 16:40 ` Richard Knutsson 0 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 16:40 UTC (permalink / raw) To: Andreas Schwab Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Andreas Schwab wrote: > Richard Knutsson <ricknu-0@student.ltu.se> writes: > >> Andreas Schwab wrote: >> >>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>> >>> >>>> Vignesh Babu BM wrote: >>>> >>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>>> tr_pages = 0x15557000UL; >>>>> size = memparse(str, &str); >>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>>> size <= PAGE_SIZE || >>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>>> >>>> As we talked about before; is this really correct? !is_power_of_2(0) == >>>> true while (0 & (0-1)) == 0. >>>> >>> size == 0 is also covered by the next two conditions, so the overall value >>> does not change. >>> >> Yes, but is it meant to state that 'size' is not a power of two? >> > > What else can it mean? > What about !one_or_less_bit()? It has not been implemented (yet?) but been discussed. It ended by concluding that is_power_of_2() should be fixed up first and then we can see about it. And as I stated before; !is_power_of_2(size) != (size & (size-1))! It may be a bug but then we have to be sure it is suppose to be the power of 2. Richard Knutsson -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 16:40 ` Richard Knutsson 0 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 16:40 UTC (permalink / raw) To: Andreas Schwab Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Andreas Schwab wrote: > Richard Knutsson <ricknu-0@student.ltu.se> writes: > >> Andreas Schwab wrote: >> >>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>> >>> >>>> Vignesh Babu BM wrote: >>>> >>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>>> tr_pages = 0x15557000UL; >>>>> size = memparse(str, &str); >>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>>> size <= PAGE_SIZE || >>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>>> >>>> As we talked about before; is this really correct? !is_power_of_2(0) == >>>> true while (0 & (0-1)) == 0. >>>> >>> size == 0 is also covered by the next two conditions, so the overall value >>> does not change. >>> >> Yes, but is it meant to state that 'size' is not a power of two? >> > > What else can it mean? > What about !one_or_less_bit()? It has not been implemented (yet?) but been discussed. It ended by concluding that is_power_of_2() should be fixed up first and then we can see about it. And as I stated before; !is_power_of_2(size) != (size & (size-1))! It may be a bug but then we have to be sure it is suppose to be the power of 2. Richard Knutsson ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 16:40 ` Richard Knutsson 0 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 16:40 UTC (permalink / raw) To: Andreas Schwab Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Andreas Schwab wrote: > Richard Knutsson <ricknu-0@student.ltu.se> writes: > >> Andreas Schwab wrote: >> >>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>> >>> >>>> Vignesh Babu BM wrote: >>>> >>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>>> tr_pages = 0x15557000UL; >>>>> size = memparse(str, &str); >>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>>> size <= PAGE_SIZE || >>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>>> >>>> As we talked about before; is this really correct? !is_power_of_2(0) = >>>> true while (0 & (0-1)) = 0. >>>> >>> size = 0 is also covered by the next two conditions, so the overall value >>> does not change. >>> >> Yes, but is it meant to state that 'size' is not a power of two? >> > > What else can it mean? > What about !one_or_less_bit()? It has not been implemented (yet?) but been discussed. It ended by concluding that is_power_of_2() should be fixed up first and then we can see about it. And as I stated before; !is_power_of_2(size) != (size & (size-1))! It may be a bug but then we have to be sure it is suppose to be the power of 2. Richard Knutsson ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm 2007-02-16 16:40 ` Richard Knutsson (?) (?) @ 2007-02-16 16:43 ` Andreas Schwab -1 siblings, 0 replies; 47+ messages in thread From: Andreas Schwab @ 2007-02-16 16:43 UTC (permalink / raw) To: Richard Knutsson Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Richard Knutsson <ricknu-0@student.ltu.se> writes: > Andreas Schwab wrote: >> Richard Knutsson <ricknu-0@student.ltu.se> writes: >> >>> Andreas Schwab wrote: >>> >>>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>>> >>>>> Vignesh Babu BM wrote: >>>>> >>>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>>>> tr_pages = 0x15557000UL; >>>>>> size = memparse(str, &str); >>>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>>>> size <= PAGE_SIZE || >>>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>>>> >>>>> As we talked about before; is this really correct? !is_power_of_2(0) = >>>>> true while (0 & (0-1)) = 0. >>>>> >>>> size = 0 is also covered by the next two conditions, so the overall value >>>> does not change. >>>> >>> Yes, but is it meant to state that 'size' is not a power of two? >>> >> >> What else can it mean? >> > What about !one_or_less_bit()? Obviously not. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.osdl.org https://lists.osdl.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 16:43 ` Andreas Schwab 0 siblings, 0 replies; 47+ messages in thread From: Andreas Schwab @ 2007-02-16 16:43 UTC (permalink / raw) To: Richard Knutsson Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Richard Knutsson <ricknu-0@student.ltu.se> writes: > Andreas Schwab wrote: >> Richard Knutsson <ricknu-0@student.ltu.se> writes: >> >>> Andreas Schwab wrote: >>> >>>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>>> >>>>> Vignesh Babu BM wrote: >>>>> >>>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>>>> tr_pages = 0x15557000UL; >>>>>> size = memparse(str, &str); >>>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>>>> size <= PAGE_SIZE || >>>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>>>> >>>>> As we talked about before; is this really correct? !is_power_of_2(0) == >>>>> true while (0 & (0-1)) == 0. >>>>> >>>> size == 0 is also covered by the next two conditions, so the overall value >>>> does not change. >>>> >>> Yes, but is it meant to state that 'size' is not a power of two? >>> >> >> What else can it mean? >> > What about !one_or_less_bit()? Obviously not. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstrasse 5, 90409 Nurnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 16:43 ` Andreas Schwab 0 siblings, 0 replies; 47+ messages in thread From: Andreas Schwab @ 2007-02-16 16:43 UTC (permalink / raw) To: Richard Knutsson Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Richard Knutsson <ricknu-0@student.ltu.se> writes: > Andreas Schwab wrote: >> Richard Knutsson <ricknu-0@student.ltu.se> writes: >> >>> Andreas Schwab wrote: >>> >>>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>>> >>>>> Vignesh Babu BM wrote: >>>>> >>>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>>>> tr_pages = 0x15557000UL; >>>>>> size = memparse(str, &str); >>>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>>>> size <= PAGE_SIZE || >>>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>>>> >>>>> As we talked about before; is this really correct? !is_power_of_2(0) == >>>>> true while (0 & (0-1)) == 0. >>>>> >>>> size == 0 is also covered by the next two conditions, so the overall value >>>> does not change. >>>> >>> Yes, but is it meant to state that 'size' is not a power of two? >>> >> >> What else can it mean? >> > What about !one_or_less_bit()? Obviously not. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 16:43 ` Andreas Schwab 0 siblings, 0 replies; 47+ messages in thread From: Andreas Schwab @ 2007-02-16 16:43 UTC (permalink / raw) To: Richard Knutsson Cc: Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel Richard Knutsson <ricknu-0@student.ltu.se> writes: > Andreas Schwab wrote: >> Richard Knutsson <ricknu-0@student.ltu.se> writes: >> >>> Andreas Schwab wrote: >>> >>>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>>> >>>>> Vignesh Babu BM wrote: >>>>> >>>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>>>> tr_pages = 0x15557000UL; >>>>>> size = memparse(str, &str); >>>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>>>> size <= PAGE_SIZE || >>>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>>>> >>>>> As we talked about before; is this really correct? !is_power_of_2(0) = >>>>> true while (0 & (0-1)) = 0. >>>>> >>>> size = 0 is also covered by the next two conditions, so the overall value >>>> does not change. >>>> >>> Yes, but is it meant to state that 'size' is not a power of two? >>> >> >> What else can it mean? >> > What about !one_or_less_bit()? Obviously not. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm 2007-02-16 16:40 ` Richard Knutsson (?) (?) @ 2007-02-16 17:06 ` Robert P. J. Day -1 siblings, 0 replies; 47+ messages in thread From: Robert P. J. Day @ 2007-02-16 17:06 UTC (permalink / raw) To: Richard Knutsson Cc: Andreas Schwab, linux-mm, tony.luck, linux-ia64, Kernel Janitors List, linux-kernel i'm not clear on what the possible problem is here: On Fri, 16 Feb 2007, Richard Knutsson wrote: > Andreas Schwab wrote: > > Richard Knutsson <ricknu-0@student.ltu.se> writes: > > > >> Andreas Schwab wrote: > >> > >>> Richard Knutsson <ricknu-0@student.ltu.se> writes: > >>> > >>> > >>>> Vignesh Babu BM wrote: > >>>> > >>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) > >>>>> tr_pages = 0x15557000UL; > >>>>> size = memparse(str, &str); > >>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || > >>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || > >>>>> size <= PAGE_SIZE || > >>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { > >>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); > >>>>> > >>>> As we talked about before; is this really correct? !is_power_of_2(0) = > >>>> true while (0 & (0-1)) = 0. > >>>> > >>> size = 0 is also covered by the next two conditions, so the overall value > >>> does not change. > >>> > >> Yes, but is it meant to state that 'size' is not a power of two? > >> > > > > What else can it mean? > What about !one_or_less_bit()? It has not been implemented (yet?) > but been discussed. but whether or not it's been implemented doesn't change whether or not the code above can be simplified. given what's being tested, and the error message about whether a page size is valid, it seems fairly clear that this is a power of two test. what's the problem? > It ended by concluding that is_power_of_2() should be fixed up first > and then we can see about it. there's nothing about is_power_of_2() that needs "fixing". it's correct as it's currently implemented. > And as I stated before; !is_power_of_2(size) != (size & (size-1))! > It may be a bug but then we have to be sure it is suppose to be the > power of 2. it may be that certain tests in the current code need to be examined carefully to clarify what's being tested. but the code above seems straightforward. rday -- ==================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ==================================== _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.osdl.org https://lists.osdl.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 17:06 ` Robert P. J. Day 0 siblings, 0 replies; 47+ messages in thread From: Robert P. J. Day @ 2007-02-16 17:06 UTC (permalink / raw) To: Richard Knutsson Cc: Andreas Schwab, linux-mm, tony.luck, linux-ia64, Kernel Janitors List, linux-kernel i'm not clear on what the possible problem is here: On Fri, 16 Feb 2007, Richard Knutsson wrote: > Andreas Schwab wrote: > > Richard Knutsson <ricknu-0@student.ltu.se> writes: > > > >> Andreas Schwab wrote: > >> > >>> Richard Knutsson <ricknu-0@student.ltu.se> writes: > >>> > >>> > >>>> Vignesh Babu BM wrote: > >>>> > >>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) > >>>>> tr_pages = 0x15557000UL; > >>>>> size = memparse(str, &str); > >>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || > >>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || > >>>>> size <= PAGE_SIZE || > >>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { > >>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); > >>>>> > >>>> As we talked about before; is this really correct? !is_power_of_2(0) == > >>>> true while (0 & (0-1)) == 0. > >>>> > >>> size == 0 is also covered by the next two conditions, so the overall value > >>> does not change. > >>> > >> Yes, but is it meant to state that 'size' is not a power of two? > >> > > > > What else can it mean? > What about !one_or_less_bit()? It has not been implemented (yet?) > but been discussed. but whether or not it's been implemented doesn't change whether or not the code above can be simplified. given what's being tested, and the error message about whether a page size is valid, it seems fairly clear that this is a power of two test. what's the problem? > It ended by concluding that is_power_of_2() should be fixed up first > and then we can see about it. there's nothing about is_power_of_2() that needs "fixing". it's correct as it's currently implemented. > And as I stated before; !is_power_of_2(size) != (size & (size-1))! > It may be a bug but then we have to be sure it is suppose to be the > power of 2. it may be that certain tests in the current code need to be examined carefully to clarify what's being tested. but the code above seems straightforward. rday -- ======================================================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ======================================================================== -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 17:06 ` Robert P. J. Day 0 siblings, 0 replies; 47+ messages in thread From: Robert P. J. Day @ 2007-02-16 17:06 UTC (permalink / raw) To: Richard Knutsson Cc: Andreas Schwab, linux-mm, tony.luck, linux-ia64, Kernel Janitors List, linux-kernel i'm not clear on what the possible problem is here: On Fri, 16 Feb 2007, Richard Knutsson wrote: > Andreas Schwab wrote: > > Richard Knutsson <ricknu-0@student.ltu.se> writes: > > > >> Andreas Schwab wrote: > >> > >>> Richard Knutsson <ricknu-0@student.ltu.se> writes: > >>> > >>> > >>>> Vignesh Babu BM wrote: > >>>> > >>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) > >>>>> tr_pages = 0x15557000UL; > >>>>> size = memparse(str, &str); > >>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || > >>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || > >>>>> size <= PAGE_SIZE || > >>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { > >>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); > >>>>> > >>>> As we talked about before; is this really correct? !is_power_of_2(0) == > >>>> true while (0 & (0-1)) == 0. > >>>> > >>> size == 0 is also covered by the next two conditions, so the overall value > >>> does not change. > >>> > >> Yes, but is it meant to state that 'size' is not a power of two? > >> > > > > What else can it mean? > What about !one_or_less_bit()? It has not been implemented (yet?) > but been discussed. but whether or not it's been implemented doesn't change whether or not the code above can be simplified. given what's being tested, and the error message about whether a page size is valid, it seems fairly clear that this is a power of two test. what's the problem? > It ended by concluding that is_power_of_2() should be fixed up first > and then we can see about it. there's nothing about is_power_of_2() that needs "fixing". it's correct as it's currently implemented. > And as I stated before; !is_power_of_2(size) != (size & (size-1))! > It may be a bug but then we have to be sure it is suppose to be the > power of 2. it may be that certain tests in the current code need to be examined carefully to clarify what's being tested. but the code above seems straightforward. rday -- ======================================================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ======================================================================== ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 17:06 ` Robert P. J. Day 0 siblings, 0 replies; 47+ messages in thread From: Robert P. J. Day @ 2007-02-16 17:06 UTC (permalink / raw) To: Richard Knutsson Cc: Andreas Schwab, linux-mm, tony.luck, linux-ia64, Kernel Janitors List, linux-kernel i'm not clear on what the possible problem is here: On Fri, 16 Feb 2007, Richard Knutsson wrote: > Andreas Schwab wrote: > > Richard Knutsson <ricknu-0@student.ltu.se> writes: > > > >> Andreas Schwab wrote: > >> > >>> Richard Knutsson <ricknu-0@student.ltu.se> writes: > >>> > >>> > >>>> Vignesh Babu BM wrote: > >>>> > >>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) > >>>>> tr_pages = 0x15557000UL; > >>>>> size = memparse(str, &str); > >>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || > >>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || > >>>>> size <= PAGE_SIZE || > >>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { > >>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); > >>>>> > >>>> As we talked about before; is this really correct? !is_power_of_2(0) = > >>>> true while (0 & (0-1)) = 0. > >>>> > >>> size = 0 is also covered by the next two conditions, so the overall value > >>> does not change. > >>> > >> Yes, but is it meant to state that 'size' is not a power of two? > >> > > > > What else can it mean? > What about !one_or_less_bit()? It has not been implemented (yet?) > but been discussed. but whether or not it's been implemented doesn't change whether or not the code above can be simplified. given what's being tested, and the error message about whether a page size is valid, it seems fairly clear that this is a power of two test. what's the problem? > It ended by concluding that is_power_of_2() should be fixed up first > and then we can see about it. there's nothing about is_power_of_2() that needs "fixing". it's correct as it's currently implemented. > And as I stated before; !is_power_of_2(size) != (size & (size-1))! > It may be a bug but then we have to be sure it is suppose to be the > power of 2. it may be that certain tests in the current code need to be examined carefully to clarify what's being tested. but the code above seems straightforward. rday -- ==================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ==================================== ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm 2007-02-16 17:06 ` Robert P. J. Day (?) (?) @ 2007-02-16 17:36 ` Richard Knutsson -1 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 17:36 UTC (permalink / raw) To: Robert P. J. Day Cc: Andreas Schwab, linux-mm, tony.luck, linux-ia64, Kernel Janitors List, linux-kernel Robert P. J. Day wrote: > i'm not clear on what the possible problem is here: > > On Fri, 16 Feb 2007, Richard Knutsson wrote: > > >> Andreas Schwab wrote: >> >>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>> >>> >>>> Andreas Schwab wrote: >>>> >>>> >>>>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>>>> >>>>> >>>>> >>>>>> Vignesh Babu BM wrote: >>>>>> >>>>>> >>>>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>>>>> tr_pages = 0x15557000UL; >>>>>>> size = memparse(str, &str); >>>>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>>>>> size <= PAGE_SIZE || >>>>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>>>>> >>>>>>> >>>>>> As we talked about before; is this really correct? !is_power_of_2(0) = >>>>>> true while (0 & (0-1)) = 0. >>>>>> >>>>>> >>>>> size = 0 is also covered by the next two conditions, so the overall value >>>>> does not change. >>>>> >>>>> >>>> Yes, but is it meant to state that 'size' is not a power of two? >>>> >>>> >>> What else can it mean? >>> >> What about !one_or_less_bit()? It has not been implemented (yet?) >> but been discussed. >> > > but whether or not it's been implemented doesn't change whether or not > the code above can be simplified. given what's being tested, and the > error message about whether a page size is valid, it seems fairly > clear that this is a power of two test. what's the problem? > Fsck, I can't see that. But if that is what's intended, well then... (5 min later) Ok, now I think I see it. Sorry for the noise.. > >> It ended by concluding that is_power_of_2() should be fixed up first >> and then we can see about it. >> > > there's nothing about is_power_of_2() that needs "fixing". it's > correct as it's currently implemented. > Oh, I didn't mean that is_power_of_2() need to be fixed, I meant fixing/replacing the kernel with is_power_of_2(). Todays lesson: don't try to code while you have a cold... Richard Knutsson _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.osdl.org https://lists.osdl.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 17:36 ` Richard Knutsson 0 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 17:36 UTC (permalink / raw) To: Robert P. J. Day Cc: Andreas Schwab, linux-mm, tony.luck, linux-ia64, Kernel Janitors List, linux-kernel Robert P. J. Day wrote: > i'm not clear on what the possible problem is here: > > On Fri, 16 Feb 2007, Richard Knutsson wrote: > > >> Andreas Schwab wrote: >> >>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>> >>> >>>> Andreas Schwab wrote: >>>> >>>> >>>>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>>>> >>>>> >>>>> >>>>>> Vignesh Babu BM wrote: >>>>>> >>>>>> >>>>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>>>>> tr_pages = 0x15557000UL; >>>>>>> size = memparse(str, &str); >>>>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>>>>> size <= PAGE_SIZE || >>>>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>>>>> >>>>>>> >>>>>> As we talked about before; is this really correct? !is_power_of_2(0) == >>>>>> true while (0 & (0-1)) == 0. >>>>>> >>>>>> >>>>> size == 0 is also covered by the next two conditions, so the overall value >>>>> does not change. >>>>> >>>>> >>>> Yes, but is it meant to state that 'size' is not a power of two? >>>> >>>> >>> What else can it mean? >>> >> What about !one_or_less_bit()? It has not been implemented (yet?) >> but been discussed. >> > > but whether or not it's been implemented doesn't change whether or not > the code above can be simplified. given what's being tested, and the > error message about whether a page size is valid, it seems fairly > clear that this is a power of two test. what's the problem? > Fsck, I can't see that. But if that is what's intended, well then... (5 min later) Ok, now I think I see it. Sorry for the noise.. > >> It ended by concluding that is_power_of_2() should be fixed up first >> and then we can see about it. >> > > there's nothing about is_power_of_2() that needs "fixing". it's > correct as it's currently implemented. > Oh, I didn't mean that is_power_of_2() need to be fixed, I meant fixing/replacing the kernel with is_power_of_2(). Todays lesson: don't try to code while you have a cold... Richard Knutsson -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 17:36 ` Richard Knutsson 0 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 17:36 UTC (permalink / raw) To: Robert P. J. Day Cc: Andreas Schwab, linux-mm, tony.luck, linux-ia64, Kernel Janitors List, linux-kernel Robert P. J. Day wrote: > i'm not clear on what the possible problem is here: > > On Fri, 16 Feb 2007, Richard Knutsson wrote: > > >> Andreas Schwab wrote: >> >>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>> >>> >>>> Andreas Schwab wrote: >>>> >>>> >>>>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>>>> >>>>> >>>>> >>>>>> Vignesh Babu BM wrote: >>>>>> >>>>>> >>>>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>>>>> tr_pages = 0x15557000UL; >>>>>>> size = memparse(str, &str); >>>>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>>>>> size <= PAGE_SIZE || >>>>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>>>>> >>>>>>> >>>>>> As we talked about before; is this really correct? !is_power_of_2(0) == >>>>>> true while (0 & (0-1)) == 0. >>>>>> >>>>>> >>>>> size == 0 is also covered by the next two conditions, so the overall value >>>>> does not change. >>>>> >>>>> >>>> Yes, but is it meant to state that 'size' is not a power of two? >>>> >>>> >>> What else can it mean? >>> >> What about !one_or_less_bit()? It has not been implemented (yet?) >> but been discussed. >> > > but whether or not it's been implemented doesn't change whether or not > the code above can be simplified. given what's being tested, and the > error message about whether a page size is valid, it seems fairly > clear that this is a power of two test. what's the problem? > Fsck, I can't see that. But if that is what's intended, well then... (5 min later) Ok, now I think I see it. Sorry for the noise.. > >> It ended by concluding that is_power_of_2() should be fixed up first >> and then we can see about it. >> > > there's nothing about is_power_of_2() that needs "fixing". it's > correct as it's currently implemented. > Oh, I didn't mean that is_power_of_2() need to be fixed, I meant fixing/replacing the kernel with is_power_of_2(). Todays lesson: don't try to code while you have a cold... Richard Knutsson ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 17:36 ` Richard Knutsson 0 siblings, 0 replies; 47+ messages in thread From: Richard Knutsson @ 2007-02-16 17:36 UTC (permalink / raw) To: Robert P. J. Day Cc: Andreas Schwab, linux-mm, tony.luck, linux-ia64, Kernel Janitors List, linux-kernel Robert P. J. Day wrote: > i'm not clear on what the possible problem is here: > > On Fri, 16 Feb 2007, Richard Knutsson wrote: > > >> Andreas Schwab wrote: >> >>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>> >>> >>>> Andreas Schwab wrote: >>>> >>>> >>>>> Richard Knutsson <ricknu-0@student.ltu.se> writes: >>>>> >>>>> >>>>> >>>>>> Vignesh Babu BM wrote: >>>>>> >>>>>> >>>>>>> @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) >>>>>>> tr_pages = 0x15557000UL; >>>>>>> size = memparse(str, &str); >>>>>>> - if (*str || (size & (size-1)) || !(tr_pages & size) || >>>>>>> + if (*str || !is_power_of_2(size) || !(tr_pages & size) || >>>>>>> size <= PAGE_SIZE || >>>>>>> size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { >>>>>>> printk(KERN_WARNING "Invalid huge page size specified\n"); >>>>>>> >>>>>>> >>>>>> As we talked about before; is this really correct? !is_power_of_2(0) = >>>>>> true while (0 & (0-1)) = 0. >>>>>> >>>>>> >>>>> size = 0 is also covered by the next two conditions, so the overall value >>>>> does not change. >>>>> >>>>> >>>> Yes, but is it meant to state that 'size' is not a power of two? >>>> >>>> >>> What else can it mean? >>> >> What about !one_or_less_bit()? It has not been implemented (yet?) >> but been discussed. >> > > but whether or not it's been implemented doesn't change whether or not > the code above can be simplified. given what's being tested, and the > error message about whether a page size is valid, it seems fairly > clear that this is a power of two test. what's the problem? > Fsck, I can't see that. But if that is what's intended, well then... (5 min later) Ok, now I think I see it. Sorry for the noise.. > >> It ended by concluding that is_power_of_2() should be fixed up first >> and then we can see about it. >> > > there's nothing about is_power_of_2() that needs "fixing". it's > correct as it's currently implemented. > Oh, I didn't mean that is_power_of_2() need to be fixed, I meant fixing/replacing the kernel with is_power_of_2(). Todays lesson: don't try to code while you have a cold... Richard Knutsson ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm 2007-02-16 15:57 ` Richard Knutsson (?) (?) @ 2007-02-16 16:58 ` Robert P. J. Day -1 siblings, 0 replies; 47+ messages in thread From: Robert P. J. Day @ 2007-02-16 16:58 UTC (permalink / raw) To: Richard Knutsson Cc: Andreas Schwab, Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel On Fri, 16 Feb 2007, Richard Knutsson wrote: > Andreas Schwab wrote: > > Richard Knutsson <ricknu-0@student.ltu.se> writes: > > > > > > > Vignesh Babu BM wrote: > > > > > > > @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) > > > > tr_pages = 0x15557000UL; > > > > size = memparse(str, &str); > > > > - if (*str || (size & (size-1)) || !(tr_pages & size) || > > > > + if (*str || !is_power_of_2(size) || !(tr_pages & size) || > > > > size <= PAGE_SIZE || > > > > size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { > > > > printk(KERN_WARNING "Invalid huge page size specified\n"); > > > > > > > > > > > As we talked about before; is this really correct? > > > !is_power_of_2(0) = true while (0 & (0-1)) = 0. > > > > size = 0 is also covered by the next two conditions, so the > > overall value does not change. > > > Yes, but is it meant to state that 'size' is not a power of two? > Otherwise, imho, it should be left as-is. i think the above change is fine. as long as the final, overall semantics of the condition are identical, then there's no problem. rday -- ==================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ==================================== _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.osdl.org https://lists.osdl.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 16:58 ` Robert P. J. Day 0 siblings, 0 replies; 47+ messages in thread From: Robert P. J. Day @ 2007-02-16 16:58 UTC (permalink / raw) To: Richard Knutsson Cc: Andreas Schwab, Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel On Fri, 16 Feb 2007, Richard Knutsson wrote: > Andreas Schwab wrote: > > Richard Knutsson <ricknu-0@student.ltu.se> writes: > > > > > > > Vignesh Babu BM wrote: > > > > > > > @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) > > > > tr_pages = 0x15557000UL; > > > > size = memparse(str, &str); > > > > - if (*str || (size & (size-1)) || !(tr_pages & size) || > > > > + if (*str || !is_power_of_2(size) || !(tr_pages & size) || > > > > size <= PAGE_SIZE || > > > > size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { > > > > printk(KERN_WARNING "Invalid huge page size specified\n"); > > > > > > > > > > > As we talked about before; is this really correct? > > > !is_power_of_2(0) == true while (0 & (0-1)) == 0. > > > > size == 0 is also covered by the next two conditions, so the > > overall value does not change. > > > Yes, but is it meant to state that 'size' is not a power of two? > Otherwise, imho, it should be left as-is. i think the above change is fine. as long as the final, overall semantics of the condition are identical, then there's no problem. rday -- ======================================================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ======================================================================== -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 16:58 ` Robert P. J. Day 0 siblings, 0 replies; 47+ messages in thread From: Robert P. J. Day @ 2007-02-16 16:58 UTC (permalink / raw) To: Richard Knutsson Cc: Andreas Schwab, Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel On Fri, 16 Feb 2007, Richard Knutsson wrote: > Andreas Schwab wrote: > > Richard Knutsson <ricknu-0@student.ltu.se> writes: > > > > > > > Vignesh Babu BM wrote: > > > > > > > @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) > > > > tr_pages = 0x15557000UL; > > > > size = memparse(str, &str); > > > > - if (*str || (size & (size-1)) || !(tr_pages & size) || > > > > + if (*str || !is_power_of_2(size) || !(tr_pages & size) || > > > > size <= PAGE_SIZE || > > > > size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { > > > > printk(KERN_WARNING "Invalid huge page size specified\n"); > > > > > > > > > > > As we talked about before; is this really correct? > > > !is_power_of_2(0) == true while (0 & (0-1)) == 0. > > > > size == 0 is also covered by the next two conditions, so the > > overall value does not change. > > > Yes, but is it meant to state that 'size' is not a power of two? > Otherwise, imho, it should be left as-is. i think the above change is fine. as long as the final, overall semantics of the condition are identical, then there's no problem. rday -- ======================================================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ======================================================================== ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: [KJ] [PATCH] is_power_of_2 in ia64mm @ 2007-02-16 16:58 ` Robert P. J. Day 0 siblings, 0 replies; 47+ messages in thread From: Robert P. J. Day @ 2007-02-16 16:58 UTC (permalink / raw) To: Richard Knutsson Cc: Andreas Schwab, Vignesh Babu BM, Kernel Janitors List, linux-mm, tony.luck, linux-ia64, linux-kernel On Fri, 16 Feb 2007, Richard Knutsson wrote: > Andreas Schwab wrote: > > Richard Knutsson <ricknu-0@student.ltu.se> writes: > > > > > > > Vignesh Babu BM wrote: > > > > > > > @@ -175,7 +176,7 @@ static int __init hugetlb_setup_sz(char *str) > > > > tr_pages = 0x15557000UL; > > > > size = memparse(str, &str); > > > > - if (*str || (size & (size-1)) || !(tr_pages & size) || > > > > + if (*str || !is_power_of_2(size) || !(tr_pages & size) || > > > > size <= PAGE_SIZE || > > > > size >= (1UL << PAGE_SHIFT << MAX_ORDER)) { > > > > printk(KERN_WARNING "Invalid huge page size specified\n"); > > > > > > > > > > > As we talked about before; is this really correct? > > > !is_power_of_2(0) = true while (0 & (0-1)) = 0. > > > > size = 0 is also covered by the next two conditions, so the > > overall value does not change. > > > Yes, but is it meant to state that 'size' is not a power of two? > Otherwise, imho, it should be left as-is. i think the above change is fine. as long as the final, overall semantics of the condition are identical, then there's no problem. rday -- ==================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ==================================== ^ permalink raw reply [flat|nested] 47+ messages in thread
* Boot time Bluetooth BUG: warning: (value > m) at hid-core.c:793 2007-02-16 15:02 ` Richard Knutsson ` (3 preceding siblings ...) (?) @ 2007-02-16 15:27 ` Fortier,Vincent [Montreal] 2007-02-18 21:23 ` Jiri Kosina -1 siblings, 1 reply; 47+ messages in thread From: Fortier,Vincent [Montreal] @ 2007-02-16 15:27 UTC (permalink / raw) To: linux-kernel [-- Attachment #1: Type: text/plain, Size: 2021 bytes --] Hi all I m using a Logitech MX 5000 keyboard with an included MX 1000 mouse, both bluetooth using the same USB reciever. When the USB reciever is already plugged-in at boot-time and the Bluetooth service fires-up I get this message: ======================= BUG: warning: (value > m) at drivers/usb/input/hid-core.c:793/implement() (Tainted: P ) [<c0405018>] dump_trace+0x69/0x1b6 [<c040517d>] show_trace_log_lvl+0x18/0x2c [<c0405778>] show_trace+0xf/0x11 [<c0405875>] dump_stack+0x15/0x17 [<c05993c0>] hid_output_report+0x23c/0x2e7 [<c05994b7>] hid_submit_ctrl+0x4c/0x1d9 [<c05997fd>] hid_submit_report+0x134/0x15f [<c059bd09>] hiddev_ioctl+0x327/0x88a [<c04802c8>] do_ioctl+0x4c/0x62 [<c0480528>] vfs_ioctl+0x24a/0x25c [<c0480586>] sys_ioctl+0x4c/0x66 [<c040404b>] syscall_call+0x7/0xb [<005b5402>] 0x5b5402 ======================= At this point both the keyboard and mouse do not work. I simply have to remove/replug the reciever to make them work properly... Here is the dmesg associated with the replug: usb 2-2: USB disconnect, address 3 usb 2-2.1: USB disconnect, address 6 usb 2-2.2: USB disconnect, address 4 usb 2-2.3: USB disconnect, address 5 usb 2-2: new full speed USB device using uhci_hcd and address 7 usb 2-2: configuration #1 chosen from 1 choice hub 2-2:1.0: USB hub found hub 2-2:1.0: 3 ports detected usb 2-2.2: new full speed USB device using uhci_hcd and address 8 usb 2-2.2: configuration #1 chosen from 1 choice input: Logitech Logitech BT Mini-Receiver as /class/input/input6 input: USB HID v1.11 Keyboard [Logitech Logitech BT Mini-Receiver] on usb-0000:00:1d.1-2.2 usb 2-2.3: new full speed USB device using uhci_hcd and address 9 usb 2-2.3: configuration #1 chosen from 1 choice input: Logitech Logitech BT Mini-Receiver as /class/input/input7 input,hiddev96: USB HID v1.11 Mouse [Logitech Logitech BT Mini-Receiver] on usb-0000:00:1d.1-2.3 Kernel: 2.6.19 on i686 I have attached the lsusb output and dmesg. - vin [-- Attachment #2: lsusb.txt --] [-- Type: text/plain, Size: 22408 bytes --] Bus 001 Device 001: ID 0000:0000 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed hub bMaxPacketSize0 64 idVendor 0x0000 idProduct 0x0000 bcdDevice 2.06 iManufacturer 3 Linux 2.6.19-1.2911.fc6 uhci_hcd iProduct 2 UHCI Host Controller iSerial 1 0000:00:1d.0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 255 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 2 wHubCharacteristic 0x000a No power switching (usb 1.0) Per-port overcurrent protection bPwrOn2PwrGood 1 * 2 milli seconds bHubContrCurrent 0 milli Ampere DeviceRemovable 0xc0 PortPwrCtrlMask 0x66 Hub Port Status: Port 1: 0000.0100 power Port 2: 0000.0100 power Bus 003 Device 001: ID 0000:0000 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed hub bMaxPacketSize0 64 idVendor 0x0000 idProduct 0x0000 bcdDevice 2.06 iManufacturer 3 Linux 2.6.19-1.2911.fc6 uhci_hcd iProduct 2 UHCI Host Controller iSerial 1 0000:00:1d.2 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 255 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 2 wHubCharacteristic 0x000a No power switching (usb 1.0) Per-port overcurrent protection bPwrOn2PwrGood 1 * 2 milli seconds bHubContrCurrent 0 milli Ampere DeviceRemovable 0xc0 PortPwrCtrlMask 0x66 Hub Port Status: Port 1: 0000.0100 power Port 2: 0000.0100 power Bus 004 Device 001: ID 0000:0000 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 1 Single TT bMaxPacketSize0 64 idVendor 0x0000 idProduct 0x0000 bcdDevice 2.06 iManufacturer 3 Linux 2.6.19-1.2911.fc6 ehci_hcd iProduct 2 EHCI Host Controller iSerial 1 0000:00:1d.7 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 12 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 6 wHubCharacteristic 0x000a No power switching (usb 1.0) Per-port overcurrent protection TT think time 8 FS bits bPwrOn2PwrGood 10 * 2 milli seconds bHubContrCurrent 0 milli Ampere DeviceRemovable 0xc0 PortPwrCtrlMask 0x66 Hub Port Status: Port 1: 0000.0100 power Port 2: 0000.0100 power Port 3: 0000.0100 power Port 4: 0000.0000 Port 5: 0000.0100 power Port 6: 0000.0503 highspeed power enable connect Bus 004 Device 003: ID 413c:0058 Dell Computer Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 2 TT per port bMaxPacketSize0 64 idVendor 0x413c Dell Computer Corp. idProduct 0x0058 bcdDevice 10.00 iManufacturer 0 iProduct 0 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 41 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 1 Single TT iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0001 1x 1 bytes bInterval 12 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 2 TT per port iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0001 1x 1 bytes bInterval 12 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 4 wHubCharacteristic 0x0089 Per-port power switching Per-port overcurrent protection TT think time 8 FS bits Port indicators bPwrOn2PwrGood 50 * 2 milli seconds bHubContrCurrent 100 milli Ampere DeviceRemovable 0xc0 PortPwrCtrlMask 0x66 Hub Port Status: Port 1: 0000.0100 power Port 2: 0000.0503 highspeed power enable connect Port 3: 0000.0100 power Port 4: 0000.0103 power enable connect Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed hub bMaxPacketSize0 64 bNumConfigurations 1 Bus 004 Device 004: ID 413c:0058 Dell Computer Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 2 TT per port bMaxPacketSize0 64 idVendor 0x413c Dell Computer Corp. idProduct 0x0058 bcdDevice 10.00 iManufacturer 0 iProduct 0 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 41 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 1 Single TT iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0001 1x 1 bytes bInterval 12 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 2 TT per port iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0001 1x 1 bytes bInterval 12 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 4 wHubCharacteristic 0x0089 Per-port power switching Per-port overcurrent protection TT think time 8 FS bits Port indicators bPwrOn2PwrGood 50 * 2 milli seconds bHubContrCurrent 100 milli Ampere DeviceRemovable 0xc0 PortPwrCtrlMask 0x66 Hub Port Status: Port 1: 0000.0100 power Port 2: 0000.0100 power Port 3: 0000.0100 power Port 4: 0000.0100 power Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed hub bMaxPacketSize0 64 bNumConfigurations 1 Bus 004 Device 005: ID 054c:002c Sony Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x054c Sony Corp. idProduct 0x002c bcdDevice 6.01 iManufacturer 1 Sony iProduct 2 USB Floppy Drive iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 39 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 8 Mass Storage bInterfaceSubClass 4 Floppy (UFI) bInterfaceProtocol 0 Control/Bulk/Interrupt iInterface 4 FLOPPY Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 16 Bus 002 Device 009: ID 046d:c70a Logitech, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x046d Logitech, Inc. idProduct 0xc70a bcdDevice 40.02 iManufacturer 1 Logitech iProduct 2 Logitech BT Mini-Receiver iSerial 3 0007FA61C268 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 34 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 4 RR40.02_B0036 bmAttributes 0xa0 Remote Wakeup MaxPower 98mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 2 Mouse iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 226 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 5 Bus 002 Device 008: ID 046d:c70e Logitech, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x046d Logitech, Inc. idProduct 0xc70e bcdDevice 40.02 iManufacturer 1 Logitech iProduct 2 Logitech BT Mini-Receiver iSerial 3 0007FA61C268 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 34 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 4 RR40.02_B0036 bmAttributes 0xa0 Remote Wakeup MaxPower 98mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 59 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Bus 002 Device 007: ID 046d:0b02 Logitech, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed hub bMaxPacketSize0 8 idVendor 0x046d Logitech, Inc. idProduct 0x0b02 bcdDevice 40.02 iManufacturer 1 Logitech iProduct 2 Logitech BT Mini-Receiver iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0001 1x 1 bytes bInterval 255 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 3 wHubCharacteristic 0x0004 Ganged power switching Compound device Ganged overcurrent protection bPwrOn2PwrGood 50 * 2 milli seconds bHubContrCurrent 100 milli Ampere DeviceRemovable 0xc0 PortPwrCtrlMask 0x66 Hub Port Status: Port 1: 0000.0100 power Port 2: 0000.0103 power enable connect Port 3: 0000.0103 power enable connect Bus 002 Device 001: ID 0000:0000 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed hub bMaxPacketSize0 64 idVendor 0x0000 idProduct 0x0000 bcdDevice 2.06 iManufacturer 3 Linux 2.6.19-1.2911.fc6 uhci_hcd iProduct 2 UHCI Host Controller iSerial 1 0000:00:1d.1 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 255 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 2 wHubCharacteristic 0x000a No power switching (usb 1.0) Per-port overcurrent protection bPwrOn2PwrGood 1 * 2 milli seconds bHubContrCurrent 0 milli Ampere DeviceRemovable 0xc0 PortPwrCtrlMask 0x66 Hub Port Status: Port 1: 0000.0100 power Port 2: 0000.0103 power enable connect [-- Attachment #3: dmesg.2.6.19-1.2911.fc6.PreBoot-plugged.txt --] [-- Type: text/plain, Size: 27292 bytes --] Linux version 2.6.19-1.2911.fc6 (brewbuilder@hs20-bc2-4.build.redhat.com) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-51)) #1 SMP Sat Feb 10 15:51:47 EST 2007 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009f000 (usable) BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved) BIOS-e820: 0000000000100000 - 000000003ffae000 (usable) BIOS-e820: 000000003ffae000 - 0000000040000000 (reserved) BIOS-e820: 00000000feda0000 - 00000000fee00000 (reserved) BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved) 127MB HIGHMEM available. 896MB LOWMEM available. Using x86 segment limits to approximate NX protection Entering add_active_range(0, 0, 262062) 0 entries of 256 used Zone PFN ranges: DMA 0 -> 4096 Normal 4096 -> 229376 HighMem 229376 -> 262062 early_node_map[1] active PFN ranges 0: 0 -> 262062 On node 0 totalpages: 262062 DMA zone: 32 pages used for memmap DMA zone: 0 pages reserved DMA zone: 4064 pages, LIFO batch:0 Normal zone: 1760 pages used for memmap Normal zone: 223520 pages, LIFO batch:31 HighMem zone: 255 pages used for memmap HighMem zone: 32431 pages, LIFO batch:7 DMI 2.3 present. Using APIC driver default ACPI: RSDP (v000 DELL ) @ 0x000fdf00 ACPI: RSDT (v001 DELL CPi R 0x27d5061e ASL 0x00000061) @ 0x3fff0000 ACPI: FADT (v001 DELL CPi R 0x27d5061e ASL 0x00000061) @ 0x3fff0400 ACPI: ASF! (v016 DELL CPi R 0x27d5061e ASL 0x00000061) @ 0x3fff0800 ACPI: DSDT (v001 INT430 SYSFexxx 0x00001001 MSFT 0x0100000e) @ 0x00000000 ACPI: PM-Timer IO Port: 0x808 Allocating PCI resources starting at 50000000 (gap: 40000000:beda0000) Detected 1998.429 MHz processor. Built 1 zonelists. Total pages: 260015 Kernel command line: ro root=LABEL=/ vga=0x305 Local APIC disabled by BIOS -- you can enable it with "lapic" mapped APIC to ffffd000 (01829000) Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Initializing CPU#0 CPU 0 irqstacks, hard=c0806000 soft=c07e6000 PID hash table entries: 4096 (order: 12, 16384 bytes) Console: colour dummy device 80x25 Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) Memory: 1032176k/1048248k available (2210k kernel code, 15352k reserved, 1131k data, 240k init, 130744k highmem) virtual kernel memory layout: fixmap : 0xffc56000 - 0xfffff000 (3748 kB) pkmap : 0xff800000 - 0xffc00000 (4096 kB) vmalloc : 0xf8800000 - 0xff7fe000 ( 111 MB) lowmem : 0xc0000000 - 0xf8000000 ( 896 MB) .init : 0xc07a5000 - 0xc07e1000 ( 240 kB) .data : 0xc0628a27 - 0xc07438f4 (1131 kB) .text : 0xc0400000 - 0xc0628a27 (2210 kB) Checking if this processor honours the WP bit even in supervisor mode... Ok. Calibrating delay using timer specific routine.. 3998.18 BogoMIPS (lpj=1999091) Security Framework v1.0.0 initialized SELinux: Initializing. SELinux: Starting in permissive mode selinux_register_security: Registering secondary module capability Capability LSM initialized as secondary Mount-cache hash table entries: 512 CPU: After generic identify, caps: afe9f9bf 00000000 00000000 00000000 00000180 00000000 00000000 CPU: L1 I cache: 32K, L1 D cache: 32K CPU: L2 cache: 2048K CPU: After all inits, caps: afe9f1bf 00000000 00000000 00000040 00000180 00000000 00000000 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#0. Checking 'hlt' instruction... OK. SMP alternatives: switching to UP code Freeing SMP alternatives: 12k freed ACPI: Core revision 20060707 ACPI: setting ELCR to 0200 (from 0800) CPU0: Intel(R) Pentium(R) M processor 2.00GHz stepping 06 SMP motherboard not detected. Local APIC not detected. Using dummy APIC emulation. Brought up 1 CPUs sizeof(vma)=84 bytes sizeof(page)=32 bytes sizeof(inode)=424 bytes sizeof(dentry)=144 bytes sizeof(ext3inode)=600 bytes sizeof(buffer_head)=56 bytes sizeof(skbuff)=172 bytes sizeof(task_struct)=1376 bytes checking if image is initramfs... it is Freeing initrd memory: 1541k freed NET: Registered protocol family 16 ACPI: bus type pci registered PCI: PCI BIOS revision 2.10 entry at 0xfc96e, last bus=2 PCI: Using configuration type 1 Setting up standard PCI resources ACPI: Interpreter enabled ACPI: Using PIC for interrupt routing ACPI: PCI Root Bridge [PCI0] (0000:00) PCI: Probing PCI hardware (bus 00) ACPI: Assume root bridge [\_SB_.PCI0] bus is 0 PCI quirk: region 0800-087f claimed by ICH4 ACPI/GPIO/TCO PCI quirk: region 0880-08bf claimed by ICH4 GPIO PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1 Boot video device is 0000:01:00.0 PCI: Transparent bridge - 0000:00:1e.0 PCI: Bus #03 (-#06) is hidden behind transparent bridge #02 (-#02) (try 'pci=assign-busses') Please report the result to linux-kernel to fix this permanently PCI: Bus #07 (-#0a) is hidden behind transparent bridge #02 (-#02) (try 'pci=assign-busses') Please report the result to linux-kernel to fix this permanently ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] ACPI: PCI Interrupt Link [LNKA] (IRQs 9 10 *11) ACPI: PCI Interrupt Link [LNKB] (IRQs 5 7) *11 ACPI: PCI Interrupt Link [LNKC] (IRQs 9 10 *11) ACPI: PCI Interrupt Link [LNKD] (IRQs 5 7 9 10 *11) ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 10 *11 12 14 15) ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIE._PRT] Linux Plug and Play Support v0.97 (c) Adam Belay pnp: PnP ACPI init pnp: PnP ACPI: found 13 devices usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb PCI: Using ACPI for IRQ routing PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report NetLabel: Initializing NetLabel: domain hash size = 128 NetLabel: protocols = UNLABELED CIPSOv4 NetLabel: unlabeled traffic allowed by default pnp: 00:02: ioport range 0x4d0-0x4d1 has been reserved pnp: 00:02: ioport range 0x800-0x805 could not be reserved pnp: 00:02: ioport range 0x808-0x80f could not be reserved pnp: 00:03: ioport range 0xf400-0xf4fe has been reserved pnp: 00:03: ioport range 0x806-0x807 has been reserved pnp: 00:03: ioport range 0x810-0x85f could not be reserved pnp: 00:03: ioport range 0x860-0x87f has been reserved pnp: 00:03: ioport range 0x880-0x8bf has been reserved pnp: 00:03: ioport range 0x8c0-0x8df has been reserved pnp: 00:08: ioport range 0x900-0x97f has been reserved PCI: Bridge: 0000:00:01.0 IO window: c000-cfff MEM window: fc000000-fdffffff PREFETCH window: d0000000-dfffffff PCI: Bus 3, cardbus bridge: 0000:02:01.0 IO window: 0000d000-0000d0ff IO window: 0000d400-0000d4ff PREFETCH window: 50000000-51ffffff MEM window: f6000000-f7ffffff PCI: Bus 7, cardbus bridge: 0000:02:01.1 IO window: 0000d800-0000d8ff IO window: 0000dc00-0000dcff PREFETCH window: 52000000-53ffffff MEM window: f8000000-f9ffffff PCI: Bridge: 0000:00:1e.0 IO window: d000-efff MEM window: f6000000-fbffffff PREFETCH window: 50000000-53ffffff PCI: Setting latency timer of device 0000:00:1e.0 to 64 PCI: Enabling device 0000:02:01.0 (0000 -> 0003) ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 11 PCI: setting IRQ 11 as level-triggered ACPI: PCI Interrupt 0000:02:01.0[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11 ACPI: PCI Interrupt 0000:02:01.1[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11 NET: Registered protocol family 2 IP route cache hash table entries: 32768 (order: 5, 131072 bytes) TCP established hash table entries: 131072 (order: 9, 2621440 bytes) TCP bind hash table entries: 65536 (order: 8, 1310720 bytes) TCP: Hash tables configured (established 131072 bind 65536) TCP reno registered apm: BIOS not found. audit: initializing netlink socket (disabled) audit(1171638161.662:1): initialized highmem bounce pool size: 64 pages Total HugeTLB memory allocated, 0 VFS: Disk quotas dquot_6.5.1 Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) SELinux: Registering netfilter hooks ksign: Installing public key data Loading keyring - Added public key BE1C9570C411C444 - User ID: Red Hat, Inc. (Kernel Module GPG key) io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered (default) pci_hotplug: PCI Hot Plug PCI Core version: 0.5 vesafb: framebuffer at 0xd0000000, mapped to 0xf8880000, using 1536k, total 131072k vesafb: mode is 1024x768x8, linelength=1024, pages=3 vesafb: protected mode interface info at c000:e560 vesafb: pmi: set display start = c00ce596, set palette = c00ce600 vesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da vesafb: scrolling: redraw vesafb: Pseudocolor: size=8:8:8:8, shift=0:0:0:0 Console: switching to colour frame buffer device 128x48 fb0: VESA VGA frame buffer device ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C3]) ACPI: Processor [CPU0] (supports 8 throttling states) ACPI: Thermal Zone [THM] (56 C) isapnp: Scanning for PnP cards... isapnp: No Plug & Play device found Real Time Clock Driver v1.12ac Non-volatile memory driver v1.2 Linux agpgart interface v0.101 (c) Dave Jones agpgart: Detected an Intel 855PM Chipset. agpgart: AGP aperture is 128M @ 0xe0000000 Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A 00:0b: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 5 PCI: setting IRQ 5 as level-triggered ACPI: PCI Interrupt 0000:00:1f.6[B] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5 ACPI: PCI interrupt for device 0000:00:1f.6 disabled RAMDISK driver initialized: 16 RAM disks of 16384K size 4096 blocksize Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx ICH4: IDE controller at PCI slot 0000:00:1f.1 PCI: Enabling device 0000:00:1f.1 (0005 -> 0007) ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11 ACPI: PCI Interrupt 0000:00:1f.1[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11 ICH4: chipset revision 1 ICH4: not 100% native mode: will probe irqs later ide0: BM-DMA at 0xbfa0-0xbfa7, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0xbfa8-0xbfaf, BIOS settings: hdc:DMA, hdd:pio Probing IDE interface ide0... hda: Hitachi HTS721060G9AT00, ATA DISK drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Probing IDE interface ide1... hdc: _NEC DVD+RW ND-6100A, ATAPI CD/DVD-ROM drive ide1 at 0x170-0x177,0x376 on irq 15 hda: max request size: 512KiB hda: 117210240 sectors (60011 MB) w/7539KiB Cache, CHS=16383/255/63, UDMA(100) hda: cache flushes supported hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 > ide-floppy driver 0.99.newide Yenta: CardBus bridge found at 0000:02:01.0 [1028:014e] Yenta: Using CSCINT to route CSC interrupts to PCI Yenta: Routing CardBus interrupts to PCI Yenta TI: socket 0000:02:01.0, mfunc 0x012c1202, devctl 0x64 Yenta: ISA IRQ mask 0x04d8, PCI irq 11 Socket status: 30000410 Yenta: Raising subordinate bus# of parent bus (#02) from #02 to #06 pcmcia: parent PCI bridge I/O window: 0xd000 - 0xefff cs: IO port probe 0xd000-0xefff: clean. pcmcia: parent PCI bridge Memory window: 0xf6000000 - 0xfbffffff pcmcia: parent PCI bridge Memory window: 0x50000000 - 0x53ffffff Yenta: CardBus bridge found at 0000:02:01.1 [1028:014e] Yenta: ISA IRQ mask 0x04d8, PCI irq 11 Socket status: 30000047 Yenta: Raising subordinate bus# of parent bus (#02) from #06 to #0a pcmcia: parent PCI bridge I/O window: 0xd000 - 0xefff cs: IO port probe 0xd000-0xefff: clean. pcmcia: parent PCI bridge Memory window: 0xf6000000 - 0xfbffffff pcmcia: parent PCI bridge Memory window: 0x50000000 - 0x53ffffff usbcore: registered new interface driver libusual usbcore: registered new interface driver hiddev usbcore: registered new interface driver usbhid drivers/usb/input/hid-core.c: v2.6:USB HID core driver PNP: PS/2 Controller [PNP0303:KBC,PNP0f13:PS2M] at 0x60,0x64 irq 1,12 serio: i8042 KBD port at 0x60,0x64 irq 1 serio: i8042 AUX port at 0x60,0x64 irq 12 mice: PS/2 mouse device common for all mice TCP bic registered Initializing XFRM netlink socket NET: Registered protocol family 1 NET: Registered protocol family 17 Using IPI No-Shortcut mode ACPI: (supports S0 S1 S3 S4 S5) Time: tsc clocksource has been installed. Freeing unused kernel memory: 240k freed Time: acpi_pm clocksource has been installed. Write protecting the kernel read-only data: 415k input: AT Translated Set 2 keyboard as /class/input/input0 pccard: PCMCIA card inserted into slot 0 cs: memory probe 0xf6000000-0xfbffffff: excluding 0xf6000000-0xfa1fffff 0xfae00000-0xfb3fffff pcmcia: registering new device pcmcia0.0 USB Universal Host Controller Interface driver v3.0 ACPI: PCI Interrupt 0000:00:1d.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11 PCI: Setting latency timer of device 0000:00:1d.0 to 64 uhci_hcd 0000:00:1d.0: UHCI Host Controller uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 1 uhci_hcd 0000:00:1d.0: irq 11, io base 0x0000bf80 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected ACPI: PCI Interrupt 0000:00:1d.1[B] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11 PCI: Setting latency timer of device 0000:00:1d.1 to 64 uhci_hcd 0000:00:1d.1: UHCI Host Controller uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 2 uhci_hcd 0000:00:1d.1: irq 11, io base 0x0000bf40 usb usb2: configuration #1 chosen from 1 choice hub 2-0:1.0: USB hub found hub 2-0:1.0: 2 ports detected ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11 ACPI: PCI Interrupt 0000:00:1d.2[C] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11 PCI: Setting latency timer of device 0000:00:1d.2 to 64 uhci_hcd 0000:00:1d.2: UHCI Host Controller uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 3 uhci_hcd 0000:00:1d.2: irq 11, io base 0x0000bf20 usb usb3: configuration #1 chosen from 1 choice hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected input: PS/2 Mouse as /class/input/input1 ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI) ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 11 ACPI: PCI Interrupt 0000:00:1d.7[D] -> Link [LNKH] -> GSI 11 (level, low) -> IRQ 11 PCI: Setting latency timer of device 0000:00:1d.7 to 64 ehci_hcd 0000:00:1d.7: EHCI Host Controller input: AlpsPS/2 ALPS GlidePoint as /class/input/input2 ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 4 ehci_hcd 0000:00:1d.7: debug port 1 PCI: cache line size of 32 is not supported by device 0000:00:1d.7 ehci_hcd 0000:00:1d.7: irq 11, io mem 0xf4fffc00 ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004 usb usb4: configuration #1 chosen from 1 choice hub 4-0:1.0: USB hub found hub 4-0:1.0: 6 ports detected SCSI subsystem initialized libata version 2.00 loaded. device-mapper: ioctl: 4.10.0-ioctl (2006-09-14) initialised: dm-devel@redhat.com usb 4-6: new high speed USB device using ehci_hcd and address 3 usb 4-6: configuration #1 chosen from 1 choice hub 4-6:1.0: USB hub found hub 4-6:1.0: 4 ports detected usb 2-2: new full speed USB device using uhci_hcd and address 3 kjournald starting. Commit interval 5 seconds EXT3-fs: mounted filesystem with ordered data mode. usb 2-2: configuration #1 chosen from 1 choice hub 2-2:1.0: USB hub found hub 2-2:1.0: 3 ports detected usb 4-6.2: new high speed USB device using ehci_hcd and address 4 usb 4-6.2: configuration #1 chosen from 1 choice hub 4-6.2:1.0: USB hub found hub 4-6.2:1.0: 4 ports detected usb 4-6.4: new full speed USB device using ehci_hcd and address 5 usb 4-6.4: configuration #1 chosen from 1 choice usb 2-2.2: new full speed USB device using uhci_hcd and address 4 Initializing USB Mass Storage driver... usb 2-2.2: configuration #1 chosen from 1 choice input: Logitech Logitech BT Mini-Receiver as /class/input/input3 input: USB HID v1.11 Keyboard [Logitech Logitech BT Mini-Receiver] on usb-0000:00:1d.1-2.2 usb 2-2.3: new full speed USB device using uhci_hcd and address 5 usb 2-2.3: configuration #1 chosen from 1 choice input: Logitech Logitech BT Mini-Receiver as /class/input/input4 input,hiddev96: USB HID v1.11 Mouse [Logitech Logitech BT Mini-Receiver] on usb-0000:00:1d.1-2.3 scsi0 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 5 usb-storage: waiting for device to settle before scanning usbcore: registered new interface driver usb-storage USB Mass Storage support registered. SELinux: Disabled at runtime. SELinux: Unregistering netfilter hooks audit(1171638170.739:2): selinux=0 auid=4294967295 scsi 0:0:0:0: Direct-Access SONY USB-FDU 6.01 PQ: 0 ANSI: 0 CCS sd 0:0:0:0: Attached scsi removable disk sda usb-storage: device scan complete hdc: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33) Uniform CD-ROM driver Revision: 3.20 0.0: ttyS1 at I/O 0xd3f8 (irq = 3) is a 16450 parport: PnPBIOS parport detected. parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE] ieee1394: Initialized config rom entry `ip1394' ieee80211_crypt: registered algorithm 'NULL' ieee80211: 802.11 data/management/control stack, git-1.1.13 ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com> input: PC Speaker as /class/input/input5 bcm43xx driver ACPI: PCI Interrupt 0000:02:03.0[A] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5 bcm43xx: Chip ID 0x4306, rev 0x3 bcm43xx: Number of cores: 5 bcm43xx: Core 0: ID 0x800, rev 0x4, vendor 0x4243, enabled bcm43xx: Core 1: ID 0x812, rev 0x5, vendor 0x4243, disabled bcm43xx: Core 2: ID 0x80d, rev 0x2, vendor 0x4243, enabled bcm43xx: Core 3: ID 0x807, rev 0x2, vendor 0x4243, disabled bcm43xx: Core 4: ID 0x804, rev 0x9, vendor 0x4243, enabled bcm43xx: PHY connected bcm43xx: Detected PHY: Version: 2, Type 2, Revision 2 bcm43xx: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2) bcm43xx: Radio turned off bcm43xx: Radio turned off iTCO_wdt: Intel TCO WatchDog Timer Driver v1.00 (08-Oct-2006) iTCO_wdt: Found a ICH4-M TCO device (Version=1, TCOBASE=0x0860) iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0) ACPI: PCI Interrupt 0000:02:01.2[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11 ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[11] MMIO=[fafef800-fafeffff] Max Packet=[2048] IR/IT contexts=[4/8] tg3.c:v3.69 (November 15, 2006) ACPI: PCI Interrupt 0000:02:00.0[A] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11 eth1: Tigon3 [partno(BCM95705A50) rev 3001 PHY(5705)] (PCI:33MHz:32-bit) 10/100/1000BaseT Ethernet 00:11:43:6c:ad:cd eth1: RXcsums[1] LinkChgREG[1] MIirq[1] ASF[0] Split[0] WireSpeed[1] TSOcap[1] eth1: dma_rwctrl[763f0000] dma_mask[64-bit] sd 0:0:0:0: Attached scsi generic sg0 type 0 nvidia: module license 'NVIDIA' taints kernel. intel_rng: FWH not detected ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11 NVRM: loading NVIDIA UNIX x86 Kernel Module 1.0-9746 Fri Dec 15 09:54:45 PST 2006 ACPI: PCI Interrupt 0000:00:1f.5[B] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5 PCI: Setting latency timer of device 0000:00:1f.5 to 64 ieee1394: Host added: ID:BUS[0-00:1023] GUID[344fc00037a260c1] cs: IO port probe 0x100-0x3af: clean. cs: IO port probe 0x3e0-0x4ff: clean. cs: IO port probe 0x820-0x8ff: clean. cs: IO port probe 0xc00-0xcf7: clean. cs: IO port probe 0xa00-0xaff: clean. cs: IO port probe 0x100-0x3af: clean. cs: IO port probe 0x3e0-0x4ff: clean. cs: IO port probe 0x820-0x8ff: clean. cs: IO port probe 0xc00-0xcf7: clean. cs: IO port probe 0xa00-0xaff: clean. intel8x0_measure_ac97_clock: measured 50427 usecs intel8x0: clocking to 48000 ACPI: PCI Interrupt 0000:00:1f.6[B] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5 PCI: Setting latency timer of device 0000:00:1f.6 to 64 MC'97 1 converters and GPIO not ready (0xff00) floppy0: no floppy controllers found lp0: using parport0 (interrupt-driven). lp0: console ready sonypi: Sony Programmable I/O Controller Driver v1.26. ACPI: AC Adapter [AC] (on-line) ACPI: Battery Slot [BAT0] (battery present) ACPI: Battery Slot [BAT1] (battery absent) ACPI: Lid Switch [LID] ACPI: Power Button (CM) [PBTN] ACPI: Sleep Button (CM) [SBTN] ACPI: ACPI Dock Station Driver ibm_acpi: ec object not found ACPI: Video Device [VID] (multi-head: yes rom: no post: no) md: Autodetecting RAID arrays. md: autorun ... md: ... autorun DONE. device-mapper: multipath: version 1.0.5 loaded EXT3 FS on hda5, internal journal kjournald starting. Commit interval 5 seconds EXT3 FS on hda3, internal journal EXT3-fs: mounted filesystem with ordered data mode. kjournald starting. Commit interval 5 seconds EXT3 FS on dm-0, internal journal EXT3-fs: mounted filesystem with ordered data mode. Adding 2048248k swap on /dev/hda6. Priority:-1 extents:1 across:2048248k NET: Registered protocol family 10 lo: Disabled Privacy Extensions Mobile IPv6 process `sysctl' is using deprecated sysctl (syscall) net.ipv6.neigh.lo.retrans_time; Use net.ipv6.neigh.lo.retrans_time_ms instead. PM: Writing back config space on device 0000:02:00.0 at offset b (was 165d14e4, writing 865d1028) PM: Writing back config space on device 0000:02:00.0 at offset 3 (was 0, writing 2008) PM: Writing back config space on device 0000:02:00.0 at offset 2 (was 2000000, writing 2000001) PM: Writing back config space on device 0000:02:00.0 at offset 1 (was 2b00000, writing 2b00106) ADDRCONF(NETDEV_UP): eth0: link is not ready tg3: eth0: Link is up at 100 Mbps, full duplex. tg3: eth0: Flow control is on for TX and on for RX. ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready BUG: warning: (value > m) at drivers/usb/input/hid-core.c:793/implement() (Tainted: P ) [<c0405018>] dump_trace+0x69/0x1b6 [<c040517d>] show_trace_log_lvl+0x18/0x2c [<c0405778>] show_trace+0xf/0x11 [<c0405875>] dump_stack+0x15/0x17 [<c05993c0>] hid_output_report+0x23c/0x2e7 [<c05994b7>] hid_submit_ctrl+0x4c/0x1d9 [<c05997fd>] hid_submit_report+0x134/0x15f [<c059bd09>] hiddev_ioctl+0x327/0x88a [<c04802c8>] do_ioctl+0x4c/0x62 [<c0480528>] vfs_ioctl+0x24a/0x25c [<c0480586>] sys_ioctl+0x4c/0x66 [<c040404b>] syscall_call+0x7/0xb [<005b5402>] 0x5b5402 ======================= BUG: warning: (value > m) at drivers/usb/input/hid-core.c:793/implement() (Tainted: P ) [<c0405018>] dump_trace+0x69/0x1b6 [<c040517d>] show_trace_log_lvl+0x18/0x2c [<c0405778>] show_trace+0xf/0x11 [<c0405875>] dump_stack+0x15/0x17 [<c05993c0>] hid_output_report+0x23c/0x2e7 [<c05994b7>] hid_submit_ctrl+0x4c/0x1d9 [<c05997fd>] hid_submit_report+0x134/0x15f [<c059bd09>] hiddev_ioctl+0x327/0x88a [<c04802c8>] do_ioctl+0x4c/0x62 [<c0480528>] vfs_ioctl+0x24a/0x25c [<c0480586>] sys_ioctl+0x4c/0x66 [<c040404b>] syscall_call+0x7/0xb [<005b5402>] 0x5b5402 ======================= BUG: warning: (value > m) at drivers/usb/input/hid-core.c:793/implement() (Tainted: P ) [<c0405018>] dump_trace+0x69/0x1b6 [<c040517d>] show_trace_log_lvl+0x18/0x2c [<c0405778>] show_trace+0xf/0x11 [<c0405875>] dump_stack+0x15/0x17 [<c05993c0>] hid_output_report+0x23c/0x2e7 [<c05994b7>] hid_submit_ctrl+0x4c/0x1d9 [<c05997fd>] hid_submit_report+0x134/0x15f [<c059bd09>] hiddev_ioctl+0x327/0x88a [<c04802c8>] do_ioctl+0x4c/0x62 [<c0480528>] vfs_ioctl+0x24a/0x25c [<c0480586>] sys_ioctl+0x4c/0x66 [<c040404b>] syscall_call+0x7/0xb [<005b5402>] 0x5b5402 ======================= BUG: warning: (value > m) at drivers/usb/input/hid-core.c:793/implement() (Tainted: P ) [<c0405018>] dump_trace+0x69/0x1b6 [<c040517d>] show_trace_log_lvl+0x18/0x2c [<c0405778>] show_trace+0xf/0x11 [<c0405875>] dump_stack+0x15/0x17 [<c05993c0>] hid_output_report+0x23c/0x2e7 [<c05994b7>] hid_submit_ctrl+0x4c/0x1d9 [<c05997fd>] hid_submit_report+0x134/0x15f [<c059bd09>] hiddev_ioctl+0x327/0x88a [<c04802c8>] do_ioctl+0x4c/0x62 [<c0480528>] vfs_ioctl+0x24a/0x25c [<c0480586>] sys_ioctl+0x4c/0x66 [<c040404b>] syscall_call+0x7/0xb [<005b5402>] 0x5b5402 ======================= BUG: warning: (value > m) at drivers/usb/input/hid-core.c:793/implement() (Tainted: P ) [<c0405018>] dump_trace+0x69/0x1b6 [<c040517d>] show_trace_log_lvl+0x18/0x2c [<c0405778>] show_trace+0xf/0x11 [<c0405875>] dump_stack+0x15/0x17 [<c05993c0>] hid_output_report+0x23c/0x2e7 [<c05994b7>] hid_submit_ctrl+0x4c/0x1d9 [<c05997fd>] hid_submit_report+0x134/0x15f [<c059bd09>] hiddev_ioctl+0x327/0x88a [<c04802c8>] do_ioctl+0x4c/0x62 [<c0480528>] vfs_ioctl+0x24a/0x25c [<c0480586>] sys_ioctl+0x4c/0x66 [<c040404b>] syscall_call+0x7/0xb [<005b5402>] 0x5b5402 ======================= BUG: warning: (value > m) at drivers/usb/input/hid-core.c:793/implement() (Tainted: P ) [<c0405018>] dump_trace+0x69/0x1b6 [<c040517d>] show_trace_log_lvl+0x18/0x2c [<c0405778>] show_trace+0xf/0x11 [<c0405875>] dump_stack+0x15/0x17 [<c05993c0>] hid_output_report+0x23c/0x2e7 [<c05994b7>] hid_submit_ctrl+0x4c/0x1d9 [<c05997fd>] hid_submit_report+0x134/0x15f [<c059bd09>] hiddev_ioctl+0x327/0x88a [<c04802c8>] do_ioctl+0x4c/0x62 [<c0480528>] vfs_ioctl+0x24a/0x25c [<c0480586>] sys_ioctl+0x4c/0x66 [<c040404b>] syscall_call+0x7/0xb [<005b5402>] 0x5b5402 ======================= BUG: warning: (value > m) at drivers/usb/input/hid-core.c:793/implement() (Tainted: P ) [<c0405018>] dump_trace+0x69/0x1b6 [<c040517d>] show_trace_log_lvl+0x18/0x2c [<c0405778>] show_trace+0xf/0x11 [<c0405875>] dump_stack+0x15/0x17 [<c05993c0>] hid_output_report+0x23c/0x2e7 [<c05994b7>] hid_submit_ctrl+0x4c/0x1d9 [<c05997fd>] hid_submit_report+0x134/0x15f [<c059bd09>] hiddev_ioctl+0x327/0x88a [<c04802c8>] do_ioctl+0x4c/0x62 [<c0480528>] vfs_ioctl+0x24a/0x25c [<c0480586>] sys_ioctl+0x4c/0x66 [<c040404b>] syscall_call+0x7/0xb [<005b5402>] 0x5b5402 ======================= BUG: warning: (value > m) at drivers/usb/input/hid-core.c:793/implement() (Tainted: P ) [<c0405018>] dump_trace+0x69/0x1b6 [<c040517d>] show_trace_log_lvl+0x18/0x2c [<c0405778>] show_trace+0xf/0x11 [<c0405875>] dump_stack+0x15/0x17 [<c05993c0>] hid_output_report+0x23c/0x2e7 [<c05994b7>] hid_submit_ctrl+0x4c/0x1d9 [<c05997fd>] hid_submit_report+0x134/0x15f [<c059bd09>] hiddev_ioctl+0x327/0x88a [<c04802c8>] do_ioctl+0x4c/0x62 [<c0480528>] vfs_ioctl+0x24a/0x25c [<c0480586>] sys_ioctl+0x4c/0x66 [<c040404b>] syscall_call+0x7/0xb [<005b5402>] 0x5b5402 ======================= Bluetooth: Core ver 2.11 NET: Registered protocol family 31 Bluetooth: HCI device and connection manager initialized Bluetooth: HCI socket layer initialized usb 2-2.1: new full speed USB device using uhci_hcd and address 6 Bluetooth: L2CAP ver 2.8 Bluetooth: L2CAP socket layer initialized usb 2-2.1: configuration #1 chosen from 1 choice Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM TTY layer initialized Bluetooth: RFCOMM ver 1.8 Bluetooth: HCI USB driver ver 2.9 usbcore: registered new interface driver hci_usb Bluetooth: HIDP (Human Interface Emulation) ver 1.1 eth0: no IPv6 routers present agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0. agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode agpgart: Putting AGP V2 device at 0000:01:00.0 into 4x mode ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Boot time Bluetooth BUG: warning: (value > m) at hid-core.c:793 2007-02-16 15:27 ` Boot time Bluetooth BUG: warning: (value > m) at hid-core.c:793 Fortier,Vincent [Montreal] @ 2007-02-18 21:23 ` Jiri Kosina 2007-02-19 0:25 ` Marcel Holtmann 0 siblings, 1 reply; 47+ messages in thread From: Jiri Kosina @ 2007-02-18 21:23 UTC (permalink / raw) To: Fortier,Vincent [Montreal]; +Cc: linux-kernel, Marcel Holtmann On Fri, 16 Feb 2007, Fortier,Vincent [Montreal] wrote: > I m using a Logitech MX 5000 keyboard with an included MX 1000 mouse, > both bluetooth using the same USB reciever. > When the USB reciever is already plugged-in at boot-time and the > Bluetooth service fires-up I get this message: > ======================= > BUG: warning: (value > m) at > drivers/usb/input/hid-core.c:793/implement() (Tainted: P ) > [<c0405018>] dump_trace+0x69/0x1b6 > [<c040517d>] show_trace_log_lvl+0x18/0x2c > [<c0405778>] show_trace+0xf/0x11 > [<c0405875>] dump_stack+0x15/0x17 > [<c05993c0>] hid_output_report+0x23c/0x2e7 > [<c05994b7>] hid_submit_ctrl+0x4c/0x1d9 > [<c05997fd>] hid_submit_report+0x134/0x15f > [<c059bd09>] hiddev_ioctl+0x327/0x88a > [<c04802c8>] do_ioctl+0x4c/0x62 > [<c0480528>] vfs_ioctl+0x24a/0x25c > [<c0480586>] sys_ioctl+0x4c/0x66 > [<c040404b>] syscall_call+0x7/0xb > [<005b5402>] 0x5b5402 > ======================= (added Marcel to CC) This means that something (I guess that it's hid2hci command?) is trying to pass through hiddev a value in a field that is greater than a given bitmask (and is not going to fit into the bitfield). Vincent, does the problem go away when you don't use bluetooth (both keyboard and mouse is switched to HID mode, if they support it)? Marcel, do you have any idea how this could happen? Thanks, -- Jiri Kosina ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Boot time Bluetooth BUG: warning: (value > m) at hid-core.c:793 2007-02-18 21:23 ` Jiri Kosina @ 2007-02-19 0:25 ` Marcel Holtmann 2007-02-19 9:36 ` Jiri Kosina 2007-02-27 15:54 ` Jiri Kosina 0 siblings, 2 replies; 47+ messages in thread From: Marcel Holtmann @ 2007-02-19 0:25 UTC (permalink / raw) To: Jiri Kosina; +Cc: Fortier,Vincent [Montreal], linux-kernel Hi Jiri, > > I m using a Logitech MX 5000 keyboard with an included MX 1000 mouse, > > both bluetooth using the same USB reciever. > > When the USB reciever is already plugged-in at boot-time and the > > Bluetooth service fires-up I get this message: > > ======================= > > BUG: warning: (value > m) at > > drivers/usb/input/hid-core.c:793/implement() (Tainted: P ) > > [<c0405018>] dump_trace+0x69/0x1b6 > > [<c040517d>] show_trace_log_lvl+0x18/0x2c > > [<c0405778>] show_trace+0xf/0x11 > > [<c0405875>] dump_stack+0x15/0x17 > > [<c05993c0>] hid_output_report+0x23c/0x2e7 > > [<c05994b7>] hid_submit_ctrl+0x4c/0x1d9 > > [<c05997fd>] hid_submit_report+0x134/0x15f > > [<c059bd09>] hiddev_ioctl+0x327/0x88a > > [<c04802c8>] do_ioctl+0x4c/0x62 > > [<c0480528>] vfs_ioctl+0x24a/0x25c > > [<c0480586>] sys_ioctl+0x4c/0x66 > > [<c040404b>] syscall_call+0x7/0xb > > [<005b5402>] 0x5b5402 > > ======================= > > (added Marcel to CC) > > This means that something (I guess that it's hid2hci command?) is trying > to pass through hiddev a value in a field that is greater than a given > bitmask (and is not going to fit into the bitfield). > > Vincent, does the problem go away when you don't use bluetooth (both > keyboard and mouse is switched to HID mode, if they support it)? > > Marcel, do you have any idea how this could happen? we understand the original CSR HID proxy dongles, but for the Logitech ones, it is wild guesses. The current support in hid2hci has been tested on Logitech diNovo first generation and I have no other Logitech hardware to verify it with. We might simply need the full HID report descriptor to see who is at fault. Regards Marcel ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Boot time Bluetooth BUG: warning: (value > m) at hid-core.c:793 2007-02-19 0:25 ` Marcel Holtmann @ 2007-02-19 9:36 ` Jiri Kosina 2007-02-27 15:54 ` Jiri Kosina 1 sibling, 0 replies; 47+ messages in thread From: Jiri Kosina @ 2007-02-19 9:36 UTC (permalink / raw) To: Marcel Holtmann; +Cc: Fortier,Vincent [Montreal], linux-kernel On Mon, 19 Feb 2007, Marcel Holtmann wrote: > we understand the original CSR HID proxy dongles, but for the Logitech > ones, it is wild guesses. The current support in hid2hci has been tested > on Logitech diNovo first generation and I have no other Logitech > hardware to verify it with. We might simply need the full HID report > descriptor to see who is at fault. Vincent, from the stacktrace it seems that you are using pre-2.6.20 kernel. Could you please compile kernel with the following changes in drivers/usb/input/hid-core.c - comment the #undef DEBUG and #undef DEBUG_DATA - add #define DEBUG and #define DEBUG_DATA and send us the output? -- Jiri Kosina ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Boot time Bluetooth BUG: warning: (value > m) at hid-core.c:793 2007-02-19 0:25 ` Marcel Holtmann 2007-02-19 9:36 ` Jiri Kosina @ 2007-02-27 15:54 ` Jiri Kosina 2007-02-27 16:12 ` Fortier,Vincent [Montreal] 1 sibling, 1 reply; 47+ messages in thread From: Jiri Kosina @ 2007-02-27 15:54 UTC (permalink / raw) To: Marcel Holtmann; +Cc: Fortier,Vincent [Montreal], linux-kernel On Mon, 19 Feb 2007, Marcel Holtmann wrote: > we understand the original CSR HID proxy dongles, but for the Logitech > ones, it is wild guesses. The current support in hid2hci has been tested > on Logitech diNovo first generation and I have no other Logitech > hardware to verify it with. We might simply need the full HID report > descriptor to see who is at fault. As far as I can see from a quick look, the device IDs are unchanged (0x046d/0xc70e for the keyboard), but the report descriptor seems to differ from the one you have at http://www.holtmann.org/linux/bluetooth/logitech.html - that seems pretty sad. What puzzles me a bit is a fact that both the bugreporters seem to state pretty clearly that this started happening after some update, am I right? Or did the hardware before work all the time in the HID mode, without even being attempted to switch to HCI (which seems to cause the bug)? -- Jiri Kosina ^ permalink raw reply [flat|nested] 47+ messages in thread
* RE: Boot time Bluetooth BUG: warning: (value > m) at hid-core.c:793 2007-02-27 15:54 ` Jiri Kosina @ 2007-02-27 16:12 ` Fortier,Vincent [Montreal] [not found] ` <Pine.LNX.4.64.0702271713220.10496@twin.jikos.cz> 0 siblings, 1 reply; 47+ messages in thread From: Fortier,Vincent [Montreal] @ 2007-02-27 16:12 UTC (permalink / raw) To: Jiri Kosina, Marcel Holtmann; +Cc: linux-kernel > > we understand the original CSR HID proxy dongles, but for the Logitech > ones, it is wild guesses. The current support in hid2hci has been > tested on Logitech diNovo first generation and I have no other > Logitech hardware to verify it with. We might simply need > the full HID report descriptor to see who is at fault. > > As far as I can see from a quick look, the device IDs are > unchanged (0x046d/0xc70e for the keyboard), but the report > descriptor seems to differ from the one you have at > http://www.holtmann.org/linux/bluetooth/logitech.html - that > seems pretty sad. > > What puzzles me a bit is a fact that both the bugreporters > seem to state pretty clearly that this started happening > after some update, am I right? > > Or did the hardware before work all the time in the HID mode, > without even being attempted to switch to HCI (which seems to > cause the bug)? > Actually it's the first time I'm trying this keyboard and mouse. - vin ^ permalink raw reply [flat|nested] 47+ messages in thread
[parent not found: <Pine.LNX.4.64.0702271713220.10496@twin.jikos.cz>]
* RE: Boot time Bluetooth BUG: warning: (value > m) at hid-core.c:793 [not found] ` <Pine.LNX.4.64.0702271713220.10496@twin.jikos.cz> @ 2007-02-27 20:35 ` Fortier,Vincent [Montreal] 0 siblings, 0 replies; 47+ messages in thread From: Fortier,Vincent [Montreal] @ 2007-02-27 20:35 UTC (permalink / raw) To: Jiri Kosina; +Cc: linux-kernel, marcel, zaitcev Hi Jiri, Actually I don't know... Let me test this. Here is the scenario: 1) If I plug my USB dongle after my system has booted, everything works fine (except that the keyboard repeats a few keys somethimes..) 2) If the dongle is already plugged at boot-time, there is a BUG echo in the dmesg when the bluetooth service fires up. This make both the mouse and keyboard unresponsive until I finally unplug / replug the dongle hence going back at state 1) I never run the hid2hci command manually but the bluetooth init script seems to do so. Quick test: 1- unplug/plug back the dongle to get back to state 1) The keyboard and mouse do work has expected... 2- Now run the hid2hci command has root [root@localhost init.d]# hid2hci Switching device 046d:c70a to HCI mode was successful Switching device 046d:c70e to HCI mode was successful DMESG: input: Logitech Logitech BT Mini-Receiver as /class/input/input15 input,hiddev96: USB HID v1.11 Mouse [Logitech Logitech BT Mini-Receiver] on usb-0000:00:1d.7-6.2.2.1.2.3 BUG: warning: (value > m) at drivers/usb/input/hid-core.c:793/implement() (Tainted: P ) [<c0405018>] dump_trace+0x69/0x1b6 [<c040517d>] show_trace_log_lvl+0x18/0x2c [<c0405778>] show_trace+0xf/0x11 [<c0405875>] dump_stack+0x15/0x17 [<c05993c0>] hid_output_report+0x23c/0x2e7 [<c05994b7>] hid_submit_ctrl+0x4c/0x1d9 [<c05997fd>] hid_submit_report+0x134/0x15f [<c059bd09>] hiddev_ioctl+0x327/0x88a [<c04802c8>] do_ioctl+0x4c/0x62 [<c0480528>] vfs_ioctl+0x24a/0x25c [<c0480586>] sys_ioctl+0x4c/0x66 [<c040404b>] syscall_call+0x7/0xb [<001e8402>] 0x1e8402 ======================= BUG: warning: .... 3) Now repeat step 1): ======================= usb 4-6.2.2.1.2.1: new full speed USB device using ehci_hcd and address 24 usb 4-6.2.2.1.2.1: configuration #1 chosen from 1 choice usb 4-6.2.2.1.2: USB disconnect, address 21 usb 4-6.2.2.1.2.1: USB disconnect, address 24 usb 4-6.2.2.1.2.2: USB disconnect, address 22 usb 4-6.2.2.1.2.3: USB disconnect, address 23 usb 4-6.2.2.1.2: new full speed USB device using ehci_hcd and address 25 usb 4-6.2.2.1.2: configuration #1 chosen from 1 choice hub 4-6.2.2.1.2:1.0: USB hub found hub 4-6.2.2.1.2:1.0: 3 ports detected usb 4-6.2.2.1.2.1: new full speed USB device using ehci_hcd and address 26 usb 4-6.2.2.1.2.1: configuration #1 chosen from 1 choice usb 4-6.2.2.1.2.2: new full speed USB device using ehci_hcd and address 27 usb 4-6.2.2.1.2.2: configuration #1 chosen from 1 choice input: Logitech Logitech BT Mini-Receiver as /class/input/input16 input: USB HID v1.11 Keyboard [Logitech Logitech BT Mini-Receiver] on usb-0000:00:1d.7-6.2.2.1.2.2 usb 4-6.2.2.1.2.3: new full speed USB device using ehci_hcd and address 28 usb 4-6.2.2.1.2.3: configuration #1 chosen from 1 choice input: Logitech Logitech BT Mini-Receiver as /class/input/input17 input,hiddev96: USB HID v1.11 Mouse [Logitech Logitech BT Mini-Receiver] on usb-0000:00:1d.7-6.2.2.1.2.3 So yes, it looks like a hid2hci BUG or kernel BUG initiated by the hid2hci command. - vin > -----Message d'origine----- > De : Jiri Kosina [mailto:jikos@jikos.cz] > Envoyé : 27 février 2007 11:15 > À : Fortier,Vincent [Montreal] > Objet : RE: Boot time Bluetooth BUG: warning: (value > m) at > hid-core.c:793 > > On Tue, 27 Feb 2007, Fortier,Vincent [Montreal] wrote: > > > Actually it's the first time I'm trying this keyboard and mouse. > > And I guess when you use it in HID mode (i.e. when the > hid2hci command is not run), then keyboard and mouse work > with no errors reported in the kernel logs, and all the > buttons work correctly, am I right? > > -- > Jiri Kosina > ^ permalink raw reply [flat|nested] 47+ messages in thread
end of thread, other threads:[~2007-02-27 20:35 UTC | newest]
Thread overview: 47+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-02-16 12:03 [KJ][PATCH] is_power_of_2 in ia64mm Vignesh Babu BM
2007-02-16 12:15 ` Vignesh Babu BM
2007-02-16 12:15 ` [KJ] [PATCH] " Vignesh Babu BM
2007-02-16 12:03 ` [KJ][PATCH] " Vignesh Babu BM
2007-02-16 15:02 ` [KJ] [PATCH] " Richard Knutsson
2007-02-16 15:02 ` Richard Knutsson
2007-02-16 15:02 ` Richard Knutsson
2007-02-16 15:02 ` Richard Knutsson
2007-02-16 15:13 ` Andreas Schwab
2007-02-16 15:13 ` Andreas Schwab
2007-02-16 15:13 ` Andreas Schwab
2007-02-16 15:13 ` Andreas Schwab
2007-02-16 15:57 ` Richard Knutsson
2007-02-16 15:57 ` Richard Knutsson
2007-02-16 15:57 ` Richard Knutsson
2007-02-16 15:57 ` Richard Knutsson
2007-02-16 15:59 ` Andreas Schwab
2007-02-16 15:59 ` Andreas Schwab
2007-02-16 15:59 ` Andreas Schwab
2007-02-16 15:59 ` Andreas Schwab
2007-02-16 16:40 ` Richard Knutsson
2007-02-16 16:40 ` Richard Knutsson
2007-02-16 16:40 ` Richard Knutsson
2007-02-16 16:40 ` Richard Knutsson
2007-02-16 16:43 ` Andreas Schwab
2007-02-16 16:43 ` Andreas Schwab
2007-02-16 16:43 ` Andreas Schwab
2007-02-16 16:43 ` Andreas Schwab
2007-02-16 17:06 ` Robert P. J. Day
2007-02-16 17:06 ` Robert P. J. Day
2007-02-16 17:06 ` Robert P. J. Day
2007-02-16 17:06 ` Robert P. J. Day
2007-02-16 17:36 ` Richard Knutsson
2007-02-16 17:36 ` Richard Knutsson
2007-02-16 17:36 ` Richard Knutsson
2007-02-16 17:36 ` Richard Knutsson
2007-02-16 16:58 ` Robert P. J. Day
2007-02-16 16:58 ` Robert P. J. Day
2007-02-16 16:58 ` Robert P. J. Day
2007-02-16 16:58 ` Robert P. J. Day
2007-02-16 15:27 ` Boot time Bluetooth BUG: warning: (value > m) at hid-core.c:793 Fortier,Vincent [Montreal]
2007-02-18 21:23 ` Jiri Kosina
2007-02-19 0:25 ` Marcel Holtmann
2007-02-19 9:36 ` Jiri Kosina
2007-02-27 15:54 ` Jiri Kosina
2007-02-27 16:12 ` Fortier,Vincent [Montreal]
[not found] ` <Pine.LNX.4.64.0702271713220.10496@twin.jikos.cz>
2007-02-27 20:35 ` Fortier,Vincent [Montreal]
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.