Re: [XEN PATCH 1/2] hvm: Support more than 32 VCPUS when migrating.

2014-04-23 Thread Jan Beulich
>>> On 22.04.14 at 20:34,  wrote:
> With this patch:
> [...]
> And with an HVM guest poking at the rest of VCPUOPs: VCPUOP_get_physid, 
> VCPUOP_initialise, and VCPUOP_send_nmi - either before the CPU is up or
> when it is up - work.
> 
> That is: the VCPUOP_get_physid would return -EINVAL; VCPUOP_initialise
> would return either -EEXIST or 0, and in either case
> the content of the ctxt was full of zeros.

Good.

> The VCPUOP_send_nmi did cause the HVM to get an NMI and it spitted out
> 'Dazed and confused'. It also noticed corruption:
> 
> [3.611742] Corrupted low memory at c000fffc (fffc phys) = 00029b00
> [2.386785] Corrupted low memory at 8800fff8 (fff8 phys) = 
> 29900
> 
> Which is odd because there does not seem to be anything in the path
> of hypervisor that would cause this.

Indeed. This looks a little like a segment descriptor got modified here
with a descriptor table base of zero and a selector of 0xfff8. That
corruption needs to be hunted down in any case before enabling
VCPUOP_send_nmi for HVM.

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [XEN PATCH 1/2] hvm: Support more than 32 VCPUS when migrating.

2014-04-23 Thread Jan Beulich
 On 22.04.14 at 20:34, konrad.w...@oracle.com wrote:
 With this patch:
 [...]
 And with an HVM guest poking at the rest of VCPUOPs: VCPUOP_get_physid, 
 VCPUOP_initialise, and VCPUOP_send_nmi - either before the CPU is up or
 when it is up - work.
 
 That is: the VCPUOP_get_physid would return -EINVAL; VCPUOP_initialise
 would return either -EEXIST or 0, and in either case
 the content of the ctxt was full of zeros.

Good.

 The VCPUOP_send_nmi did cause the HVM to get an NMI and it spitted out
 'Dazed and confused'. It also noticed corruption:
 
 [3.611742] Corrupted low memory at c000fffc (fffc phys) = 00029b00
 [2.386785] Corrupted low memory at 8800fff8 (fff8 phys) = 
 29900
 
 Which is odd because there does not seem to be anything in the path
 of hypervisor that would cause this.

Indeed. This looks a little like a segment descriptor got modified here
with a descriptor table base of zero and a selector of 0xfff8. That
corruption needs to be hunted down in any case before enabling
VCPUOP_send_nmi for HVM.

Jan

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [XEN PATCH 1/2] hvm: Support more than 32 VCPUS when migrating.

2014-04-22 Thread Konrad Rzeszutek Wilk
On Wed, Apr 09, 2014 at 04:36:53PM +0100, Jan Beulich wrote:
> >>> On 09.04.14 at 17:27,  wrote:
> > On Wed, Apr 09, 2014 at 10:06:12AM +0100, Jan Beulich wrote:
> >> >>> On 08.04.14 at 19:25,  wrote:
> >> > --- a/xen/arch/x86/hvm/hvm.c
> >> > +++ b/xen/arch/x86/hvm/hvm.c
> >> > @@ -3470,6 +3470,9 @@ static long hvm_vcpu_op(
> >> >  case VCPUOP_stop_singleshot_timer:
> >> >  case VCPUOP_register_vcpu_info:
> >> >  case VCPUOP_register_vcpu_time_memory_area:
> >> > +case VCPUOP_down:
> >> > +case VCPUOP_up:
> >> > +case VCPUOP_is_up:
> >> 
> >> This, if I checked it properly, leaves only VCPUOP_initialise,
> >> VCPUOP_send_nmi, and VCPUOP_get_physid disallowed for HVM.
> >> None of which look inherently bad to be used by HVM (but
> >> VCPUOP_initialise certainly would need closer checking), so I
> >> wonder whether either the wrapper shouldn't be dropped altogether
> >> or at least be converted from a white list approach to a black list one.
> > 
> > I was being conservative here because I did not want to allow the
> > other ones without at least testing it.
> > 
> > Perhaps that can be done as a seperate patch and this just as
> > a bug-fix?
> 
> I'm clearly not in favor of the patch as is - minimally I'd want it to
> convert the white list to a black list. And once you do this it would
> seem rather natural to not pointlessly add entries.

With this patch:

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index b5b92fe..5eee790 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3455,34 +3455,6 @@ static long hvm_physdev_op(int cmd, 
XEN_GUEST_HANDLE_PARAM(void) arg)
 }
 }
 
-static long hvm_vcpu_op(
-int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
-{
-long rc;
-
-switch ( cmd )
-{
-case VCPUOP_register_runstate_memory_area:
-case VCPUOP_get_runstate_info:
-case VCPUOP_set_periodic_timer:
-case VCPUOP_stop_periodic_timer:
-case VCPUOP_set_singleshot_timer:
-case VCPUOP_stop_singleshot_timer:
-case VCPUOP_register_vcpu_info:
-case VCPUOP_register_vcpu_time_memory_area:
-case VCPUOP_down:
-case VCPUOP_up:
-case VCPUOP_is_up:
-rc = do_vcpu_op(cmd, vcpuid, arg);
-break;
-default:
-rc = -ENOSYS;
-break;
-}
-
-return rc;
-}
-
 typedef unsigned long hvm_hypercall_t(
 unsigned long, unsigned long, unsigned long, unsigned long, unsigned long,
 unsigned long);
@@ -3517,30 +3489,6 @@ static long hvm_memory_op_compat32(int cmd, 
XEN_GUEST_HANDLE_PARAM(void) arg)
 return compat_memory_op(cmd, arg);
 }
 
-static long hvm_vcpu_op_compat32(
-int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
-{
-long rc;
-
-switch ( cmd )
-{
-case VCPUOP_register_runstate_memory_area:
-case VCPUOP_get_runstate_info:
-case VCPUOP_set_periodic_timer:
-case VCPUOP_stop_periodic_timer:
-case VCPUOP_set_singleshot_timer:
-case VCPUOP_stop_singleshot_timer:
-case VCPUOP_register_vcpu_info:
-case VCPUOP_register_vcpu_time_memory_area:
-rc = compat_vcpu_op(cmd, vcpuid, arg);
-break;
-default:
-rc = -ENOSYS;
-break;
-}
-
-return rc;
-}
 
 static long hvm_physdev_op_compat32(
 int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
@@ -3563,7 +3511,7 @@ static long hvm_physdev_op_compat32(
 static hvm_hypercall_t *const hvm_hypercall64_table[NR_hypercalls] = {
 [ __HYPERVISOR_memory_op ] = (hvm_hypercall_t *)hvm_memory_op,
 [ __HYPERVISOR_grant_table_op ] = (hvm_hypercall_t *)hvm_grant_table_op,
-[ __HYPERVISOR_vcpu_op ] = (hvm_hypercall_t *)hvm_vcpu_op,
+HYPERCALL(vcpu_op),
 [ __HYPERVISOR_physdev_op ] = (hvm_hypercall_t *)hvm_physdev_op,
 HYPERCALL(xen_version),
 HYPERCALL(console_io),
@@ -3583,7 +3531,7 @@ static hvm_hypercall_t *const 
hvm_hypercall64_table[NR_hypercalls] = {
 static hvm_hypercall_t *const hvm_hypercall32_table[NR_hypercalls] = {
 [ __HYPERVISOR_memory_op ] = (hvm_hypercall_t *)hvm_memory_op_compat32,
 [ __HYPERVISOR_grant_table_op ] = (hvm_hypercall_t 
*)hvm_grant_table_op_compat32,
-[ __HYPERVISOR_vcpu_op ] = (hvm_hypercall_t *)hvm_vcpu_op_compat32,
+COMPAT_CALL(vcpu_op),
 [ __HYPERVISOR_physdev_op ] = (hvm_hypercall_t *)hvm_physdev_op_compat32,
 COMPAT_CALL(xen_version),
 HYPERCALL(console_io),


And with an HVM guest poking at the rest of VCPUOPs: VCPUOP_get_physid, 
VCPUOP_initialise, and VCPUOP_send_nmi - either before the CPU is up or
when it is up - work.

That is: the VCPUOP_get_physid would return -EINVAL; VCPUOP_initialise
would return either -EEXIST or 0, and in either case
the content of the ctxt was full of zeros.

The VCPUOP_send_nmi did cause the HVM to get an NMI and it spitted out
'Dazed and confused'. It also noticed corruption:

[3.611742] Corrupted low memory at c000fffc (fffc phys) = 00029b00
[2.386785] Corrupted low memory at 8800fff8 (fff8 phys) = 
29900

Which 

Re: [XEN PATCH 1/2] hvm: Support more than 32 VCPUS when migrating.

2014-04-22 Thread Konrad Rzeszutek Wilk
On Wed, Apr 09, 2014 at 04:36:53PM +0100, Jan Beulich wrote:
  On 09.04.14 at 17:27, konrad.w...@oracle.com wrote:
  On Wed, Apr 09, 2014 at 10:06:12AM +0100, Jan Beulich wrote:
   On 08.04.14 at 19:25, kon...@kernel.org wrote:
   --- a/xen/arch/x86/hvm/hvm.c
   +++ b/xen/arch/x86/hvm/hvm.c
   @@ -3470,6 +3470,9 @@ static long hvm_vcpu_op(
case VCPUOP_stop_singleshot_timer:
case VCPUOP_register_vcpu_info:
case VCPUOP_register_vcpu_time_memory_area:
   +case VCPUOP_down:
   +case VCPUOP_up:
   +case VCPUOP_is_up:
  
  This, if I checked it properly, leaves only VCPUOP_initialise,
  VCPUOP_send_nmi, and VCPUOP_get_physid disallowed for HVM.
  None of which look inherently bad to be used by HVM (but
  VCPUOP_initialise certainly would need closer checking), so I
  wonder whether either the wrapper shouldn't be dropped altogether
  or at least be converted from a white list approach to a black list one.
  
  I was being conservative here because I did not want to allow the
  other ones without at least testing it.
  
  Perhaps that can be done as a seperate patch and this just as
  a bug-fix?
 
 I'm clearly not in favor of the patch as is - minimally I'd want it to
 convert the white list to a black list. And once you do this it would
 seem rather natural to not pointlessly add entries.

With this patch:

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index b5b92fe..5eee790 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3455,34 +3455,6 @@ static long hvm_physdev_op(int cmd, 
XEN_GUEST_HANDLE_PARAM(void) arg)
 }
 }
 
-static long hvm_vcpu_op(
-int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
-{
-long rc;
-
-switch ( cmd )
-{
-case VCPUOP_register_runstate_memory_area:
-case VCPUOP_get_runstate_info:
-case VCPUOP_set_periodic_timer:
-case VCPUOP_stop_periodic_timer:
-case VCPUOP_set_singleshot_timer:
-case VCPUOP_stop_singleshot_timer:
-case VCPUOP_register_vcpu_info:
-case VCPUOP_register_vcpu_time_memory_area:
-case VCPUOP_down:
-case VCPUOP_up:
-case VCPUOP_is_up:
-rc = do_vcpu_op(cmd, vcpuid, arg);
-break;
-default:
-rc = -ENOSYS;
-break;
-}
-
-return rc;
-}
-
 typedef unsigned long hvm_hypercall_t(
 unsigned long, unsigned long, unsigned long, unsigned long, unsigned long,
 unsigned long);
@@ -3517,30 +3489,6 @@ static long hvm_memory_op_compat32(int cmd, 
XEN_GUEST_HANDLE_PARAM(void) arg)
 return compat_memory_op(cmd, arg);
 }
 
-static long hvm_vcpu_op_compat32(
-int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
-{
-long rc;
-
-switch ( cmd )
-{
-case VCPUOP_register_runstate_memory_area:
-case VCPUOP_get_runstate_info:
-case VCPUOP_set_periodic_timer:
-case VCPUOP_stop_periodic_timer:
-case VCPUOP_set_singleshot_timer:
-case VCPUOP_stop_singleshot_timer:
-case VCPUOP_register_vcpu_info:
-case VCPUOP_register_vcpu_time_memory_area:
-rc = compat_vcpu_op(cmd, vcpuid, arg);
-break;
-default:
-rc = -ENOSYS;
-break;
-}
-
-return rc;
-}
 
 static long hvm_physdev_op_compat32(
 int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
@@ -3563,7 +3511,7 @@ static long hvm_physdev_op_compat32(
 static hvm_hypercall_t *const hvm_hypercall64_table[NR_hypercalls] = {
 [ __HYPERVISOR_memory_op ] = (hvm_hypercall_t *)hvm_memory_op,
 [ __HYPERVISOR_grant_table_op ] = (hvm_hypercall_t *)hvm_grant_table_op,
-[ __HYPERVISOR_vcpu_op ] = (hvm_hypercall_t *)hvm_vcpu_op,
+HYPERCALL(vcpu_op),
 [ __HYPERVISOR_physdev_op ] = (hvm_hypercall_t *)hvm_physdev_op,
 HYPERCALL(xen_version),
 HYPERCALL(console_io),
@@ -3583,7 +3531,7 @@ static hvm_hypercall_t *const 
hvm_hypercall64_table[NR_hypercalls] = {
 static hvm_hypercall_t *const hvm_hypercall32_table[NR_hypercalls] = {
 [ __HYPERVISOR_memory_op ] = (hvm_hypercall_t *)hvm_memory_op_compat32,
 [ __HYPERVISOR_grant_table_op ] = (hvm_hypercall_t 
*)hvm_grant_table_op_compat32,
-[ __HYPERVISOR_vcpu_op ] = (hvm_hypercall_t *)hvm_vcpu_op_compat32,
+COMPAT_CALL(vcpu_op),
 [ __HYPERVISOR_physdev_op ] = (hvm_hypercall_t *)hvm_physdev_op_compat32,
 COMPAT_CALL(xen_version),
 HYPERCALL(console_io),


And with an HVM guest poking at the rest of VCPUOPs: VCPUOP_get_physid, 
VCPUOP_initialise, and VCPUOP_send_nmi - either before the CPU is up or
when it is up - work.

That is: the VCPUOP_get_physid would return -EINVAL; VCPUOP_initialise
would return either -EEXIST or 0, and in either case
the content of the ctxt was full of zeros.

The VCPUOP_send_nmi did cause the HVM to get an NMI and it spitted out
'Dazed and confused'. It also noticed corruption:

[3.611742] Corrupted low memory at c000fffc (fffc phys) = 00029b00
[2.386785] Corrupted low memory at 8800fff8 (fff8 phys) = 
29900

Which is odd because there does not seem to be 

Re: [XEN PATCH 1/2] hvm: Support more than 32 VCPUS when migrating.

2014-04-09 Thread Jan Beulich
>>> On 09.04.14 at 17:27,  wrote:
> On Wed, Apr 09, 2014 at 10:06:12AM +0100, Jan Beulich wrote:
>> >>> On 08.04.14 at 19:25,  wrote:
>> > --- a/xen/arch/x86/hvm/hvm.c
>> > +++ b/xen/arch/x86/hvm/hvm.c
>> > @@ -3470,6 +3470,9 @@ static long hvm_vcpu_op(
>> >  case VCPUOP_stop_singleshot_timer:
>> >  case VCPUOP_register_vcpu_info:
>> >  case VCPUOP_register_vcpu_time_memory_area:
>> > +case VCPUOP_down:
>> > +case VCPUOP_up:
>> > +case VCPUOP_is_up:
>> 
>> This, if I checked it properly, leaves only VCPUOP_initialise,
>> VCPUOP_send_nmi, and VCPUOP_get_physid disallowed for HVM.
>> None of which look inherently bad to be used by HVM (but
>> VCPUOP_initialise certainly would need closer checking), so I
>> wonder whether either the wrapper shouldn't be dropped altogether
>> or at least be converted from a white list approach to a black list one.
> 
> I was being conservative here because I did not want to allow the
> other ones without at least testing it.
> 
> Perhaps that can be done as a seperate patch and this just as
> a bug-fix?

I'm clearly not in favor of the patch as is - minimally I'd want it to
convert the white list to a black list. And once you do this it would
seem rather natural to not pointlessly add entries.

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [XEN PATCH 1/2] hvm: Support more than 32 VCPUS when migrating.

2014-04-09 Thread Konrad Rzeszutek Wilk
On Wed, Apr 09, 2014 at 10:06:12AM +0100, Jan Beulich wrote:
> >>> On 08.04.14 at 19:25,  wrote:
> > --- a/xen/arch/x86/hvm/hvm.c
> > +++ b/xen/arch/x86/hvm/hvm.c
> > @@ -3470,6 +3470,9 @@ static long hvm_vcpu_op(
> >  case VCPUOP_stop_singleshot_timer:
> >  case VCPUOP_register_vcpu_info:
> >  case VCPUOP_register_vcpu_time_memory_area:
> > +case VCPUOP_down:
> > +case VCPUOP_up:
> > +case VCPUOP_is_up:
> 
> This, if I checked it properly, leaves only VCPUOP_initialise,
> VCPUOP_send_nmi, and VCPUOP_get_physid disallowed for HVM.
> None of which look inherently bad to be used by HVM (but
> VCPUOP_initialise certainly would need closer checking), so I
> wonder whether either the wrapper shouldn't be dropped altogether
> or at least be converted from a white list approach to a black list one.

I was being conservative here because I did not want to allow the
other ones without at least testing it.

Perhaps that can be done as a seperate patch and this just as
a bug-fix?

> 
> Jan
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [XEN PATCH 1/2] hvm: Support more than 32 VCPUS when migrating.

2014-04-09 Thread Jan Beulich
>>> On 08.04.14 at 19:25,  wrote:
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -3470,6 +3470,9 @@ static long hvm_vcpu_op(
>  case VCPUOP_stop_singleshot_timer:
>  case VCPUOP_register_vcpu_info:
>  case VCPUOP_register_vcpu_time_memory_area:
> +case VCPUOP_down:
> +case VCPUOP_up:
> +case VCPUOP_is_up:

This, if I checked it properly, leaves only VCPUOP_initialise,
VCPUOP_send_nmi, and VCPUOP_get_physid disallowed for HVM.
None of which look inherently bad to be used by HVM (but
VCPUOP_initialise certainly would need closer checking), so I
wonder whether either the wrapper shouldn't be dropped altogether
or at least be converted from a white list approach to a black list one.

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [XEN PATCH 1/2] hvm: Support more than 32 VCPUS when migrating.

2014-04-09 Thread Jan Beulich
 On 08.04.14 at 19:25, kon...@kernel.org wrote:
 --- a/xen/arch/x86/hvm/hvm.c
 +++ b/xen/arch/x86/hvm/hvm.c
 @@ -3470,6 +3470,9 @@ static long hvm_vcpu_op(
  case VCPUOP_stop_singleshot_timer:
  case VCPUOP_register_vcpu_info:
  case VCPUOP_register_vcpu_time_memory_area:
 +case VCPUOP_down:
 +case VCPUOP_up:
 +case VCPUOP_is_up:

This, if I checked it properly, leaves only VCPUOP_initialise,
VCPUOP_send_nmi, and VCPUOP_get_physid disallowed for HVM.
None of which look inherently bad to be used by HVM (but
VCPUOP_initialise certainly would need closer checking), so I
wonder whether either the wrapper shouldn't be dropped altogether
or at least be converted from a white list approach to a black list one.

Jan

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [XEN PATCH 1/2] hvm: Support more than 32 VCPUS when migrating.

2014-04-09 Thread Konrad Rzeszutek Wilk
On Wed, Apr 09, 2014 at 10:06:12AM +0100, Jan Beulich wrote:
  On 08.04.14 at 19:25, kon...@kernel.org wrote:
  --- a/xen/arch/x86/hvm/hvm.c
  +++ b/xen/arch/x86/hvm/hvm.c
  @@ -3470,6 +3470,9 @@ static long hvm_vcpu_op(
   case VCPUOP_stop_singleshot_timer:
   case VCPUOP_register_vcpu_info:
   case VCPUOP_register_vcpu_time_memory_area:
  +case VCPUOP_down:
  +case VCPUOP_up:
  +case VCPUOP_is_up:
 
 This, if I checked it properly, leaves only VCPUOP_initialise,
 VCPUOP_send_nmi, and VCPUOP_get_physid disallowed for HVM.
 None of which look inherently bad to be used by HVM (but
 VCPUOP_initialise certainly would need closer checking), so I
 wonder whether either the wrapper shouldn't be dropped altogether
 or at least be converted from a white list approach to a black list one.

I was being conservative here because I did not want to allow the
other ones without at least testing it.

Perhaps that can be done as a seperate patch and this just as
a bug-fix?

 
 Jan
 
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [XEN PATCH 1/2] hvm: Support more than 32 VCPUS when migrating.

2014-04-09 Thread Jan Beulich
 On 09.04.14 at 17:27, konrad.w...@oracle.com wrote:
 On Wed, Apr 09, 2014 at 10:06:12AM +0100, Jan Beulich wrote:
  On 08.04.14 at 19:25, kon...@kernel.org wrote:
  --- a/xen/arch/x86/hvm/hvm.c
  +++ b/xen/arch/x86/hvm/hvm.c
  @@ -3470,6 +3470,9 @@ static long hvm_vcpu_op(
   case VCPUOP_stop_singleshot_timer:
   case VCPUOP_register_vcpu_info:
   case VCPUOP_register_vcpu_time_memory_area:
  +case VCPUOP_down:
  +case VCPUOP_up:
  +case VCPUOP_is_up:
 
 This, if I checked it properly, leaves only VCPUOP_initialise,
 VCPUOP_send_nmi, and VCPUOP_get_physid disallowed for HVM.
 None of which look inherently bad to be used by HVM (but
 VCPUOP_initialise certainly would need closer checking), so I
 wonder whether either the wrapper shouldn't be dropped altogether
 or at least be converted from a white list approach to a black list one.
 
 I was being conservative here because I did not want to allow the
 other ones without at least testing it.
 
 Perhaps that can be done as a seperate patch and this just as
 a bug-fix?

I'm clearly not in favor of the patch as is - minimally I'd want it to
convert the white list to a black list. And once you do this it would
seem rather natural to not pointlessly add entries.

Jan

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/