* Re: It is possible to install Windows XP with intel vt now ?
From: Michael Lessard @ 2006-05-02 18:30 UTC (permalink / raw)
To: Yu, Ping Y; +Cc: Xen-devel
In-Reply-To: <c5530b840605021115l7872b624k9386635e4298f5bf@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 327 bytes --]
Arf, it's works, i needed to put boot=d ;)
On 5/2/06, Michael Lessard <michael.lessard@gmail.com> wrote:
>
> I haved try with that :
> disk= ['phy:/dev/sda6,ioemu:hda,w']
>
> when i type : xm create -f xp.htm
> Black sreen apear with some text
> And i receive this message :
> Fatal : Not a bootable disk
>
>
[-- Attachment #1.2: Type: text/html, Size: 741 bytes --]
[-- Attachment #2: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply
* Re: [Cbe-oss-dev] [PATCH 11/13] cell: split out board specific files
From: Arnd Bergmann @ 2006-05-02 18:30 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Geoff Levand, cbe-oss-dev, linux-kernel
In-Reply-To: <4457A2D6.4070400@am.sony.com>
Am Tuesday 02 May 2006 20:20 schrieb Geoff Levand:
> Split the Cell BE support into generic and platform dependent parts.
>
> Creates new config variables PPC_CELL_NATIVE and PPC_IBM_CELL_BLADE.
> The existing CONFIG_PPC_CELL is now used to denote the generic
> Cell processor support.
>
> Also renames spu_priv1.c to spu_priv1_mmio.c.
Ok, looks good now.
> Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Acked-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
^ permalink raw reply
* Re: [Cbe-oss-dev] [PATCH 11/13] cell: split out board specific files
From: Arnd Bergmann @ 2006-05-02 18:30 UTC (permalink / raw)
To: linuxppc-dev; +Cc: cbe-oss-dev, linux-kernel
In-Reply-To: <4457A2D6.4070400@am.sony.com>
Am Tuesday 02 May 2006 20:20 schrieb Geoff Levand:
> Split the Cell BE support into generic and platform dependent parts.
>
> Creates new config variables PPC_CELL_NATIVE and PPC_IBM_CELL_BLADE.
> The existing CONFIG_PPC_CELL is now used to denote the generic
> Cell processor support.
>
> Also renames spu_priv1.c to spu_priv1_mmio.c.
Ok, looks good now.
> Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Acked-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
^ permalink raw reply
* Re: 2.6.17-rc1-mm3: time-i386-clocksource-drivers*.patch broke userspace apps
From: Andi Kleen @ 2006-05-02 18:29 UTC (permalink / raw)
To: john stultz
Cc: Laurent Riffard, Kernel development list, OGAWA Hirofumi,
Andrew Morton
In-Reply-To: <1146593819.21288.2.camel@cog.beaverton.ibm.com>
On Tuesday 02 May 2006 20:16, john stultz wrote:
> It looks like its from the patch:
> i386-x86-64-fix-acpi-disabled-lapic-handling.patch
>
>
> The second chunk adds:
>
> + if (!cpu_has_apic)
> + return -ENODEV;
> +
>
> Right before we probe for the ACPI PM timer.
>
>
> Andi, is there some way we can move that to after the ACPI PM probe?
Yes there was some merging trouble with this and some of the hunks
applied to the wrong places and I didn't remove the wrong one
in the first fixup patch. Sorry. This should fix it up.
Andrew, can you send that one to Linus please?
-Andi
Remove wrong cpu_has_apic checks that came from mismerging.
We only need to check cpu_has_apic in the IO-APIC/L-APIC parsing,
not for all of ACPI.
Signed-off-by: Andi Kleen <ak@suse.de>
Index: linux/arch/i386/kernel/acpi/boot.c
===================================================================
--- linux.orig/arch/i386/kernel/acpi/boot.c
+++ linux/arch/i386/kernel/acpi/boot.c
@@ -1102,9 +1102,6 @@ int __init acpi_boot_table_init(void)
dmi_check_system(acpi_dmi_table);
#endif
- if (!cpu_has_apic)
- return -ENODEV;
-
/*
* If acpi_disabled, bail out
* One exception: acpi=ht continues far enough to enumerate LAPICs
@@ -1151,9 +1148,6 @@ int __init acpi_boot_init(void)
acpi_table_parse(ACPI_BOOT, acpi_parse_sbf);
- if (!cpu_has_apic)
- return -ENODEV;
-
/*
* set sci_int and PM timer address
*/
^ permalink raw reply
* Re: Add a "enable" sysfs attribute to the pci devices to allow userspace (Xorg) to enable devices without doing foul direct access
From: Arjan van de Ven @ 2006-05-02 18:27 UTC (permalink / raw)
To: Jon Smirl; +Cc: greg, linux-pci, linux-kernel, airlied, pjones, akpm
In-Reply-To: <9e4733910605021013h17b72453v3716f68a2cebdee1@mail.gmail.com>
On Tue, 2006-05-02 at 13:13 -0400, Jon Smirl wrote:
> On 5/2/06, Arjan van de Ven <arjan@linux.intel.com> wrote:
> > Jon Smirl wrote:
> > > All of these have been proposed before.
> >
> > I think you forgot to attach the patch
> >
> > > In my opinion an 'enable'
> > > attribute is the worst solution in the bunch.
> >
> > you again limit yourself to VGA. I don't.
>
> Haven't we learned that mucking with hardware from user space without
> having a device driver loaded is a very bad idea.
Not quite. It needs a reasonable sane userspace sure, but it's not
unreasonable for several cases.
> What is the
> motivation for providing an API whose only purpose is to enable this
> bad behavior?
you're very selective in what you read and only think about X.
There's many other reasons to enable/disable devices post boot.
Having a driver just to call pci_enable_device() is silly; and
there are various scenarios you may want. Userland suspend/resume is
only one of those, posting video cards is one, chip health monitoring is
one, etc etc etc. Don't let your lack of imagination ruin things.
^ permalink raw reply
* RE: We are attempting once again to split policy out intoindividual RPMS.
From: Stephen Smalley @ 2006-05-02 18:27 UTC (permalink / raw)
To: Joshua Brindle
Cc: Jeremy Katz, Daniel J Walsh, James Morris, selinux-dev, SE Linux,
Paul Nasrat, James Antill
In-Reply-To: <6FE441CD9F0C0C479F2D88F959B0158816FEC4@exchange.columbia.tresys.com>
On Tue, 2006-05-02 at 14:06 -0400, Joshua Brindle wrote:
> I strongly disagree with this. Not because rpm (or whatever) can subvert
> the policy directly by making a new type and installing a policy that
> can subvert policy. Although this is an issue because one can't
> necessarilly map file types to domains with privileges, it can possibly
> be controlled by policy server (assuming there are some pretty strict
> metapolicy rules around).
>
> A bigger issue (assuming we can control the former) is that an untrusted
> rpm can label a file with the expectation that it will be active later.
> Eg., label a malicious file passwd_exec_t before the passwd module is
> installed. Wait for the passwd module to be installed (by a more trusted
> RPM that has the policy rights to insert it) and viola, you have a rogue
> binary that can enter passwd_t and modify shadow_t.
This is another reason (besides error checking) why you want rpm to
check the labels on the installed files at the end of the transaction to
verify that they were all valid under the package's policy; if not, it
should reset them to a known state.
--
Stephen Smalley
National Security Agency
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
^ permalink raw reply
* RE: We are attempting once again to split policy out intoindividual RPMS.
From: Jeremy Katz @ 2006-05-02 18:26 UTC (permalink / raw)
To: Stephen Smalley
Cc: Joshua Brindle, Daniel J Walsh, James Morris, selinux-dev,
SE Linux, Paul Nasrat, James Antill
In-Reply-To: <1146594447.13611.217.camel@moss-spartans.epoch.ncsc.mil>
On Tue, 2006-05-02 at 14:27 -0400, Stephen Smalley wrote:
> On Tue, 2006-05-02 at 14:06 -0400, Joshua Brindle wrote:
> > I strongly disagree with this. Not because rpm (or whatever) can subvert
> > the policy directly by making a new type and installing a policy that
> > can subvert policy. Although this is an issue because one can't
> > necessarilly map file types to domains with privileges, it can possibly
> > be controlled by policy server (assuming there are some pretty strict
> > metapolicy rules around).
> >
> > A bigger issue (assuming we can control the former) is that an untrusted
> > rpm can label a file with the expectation that it will be active later.
> > Eg., label a malicious file passwd_exec_t before the passwd module is
> > installed. Wait for the passwd module to be installed (by a more trusted
> > RPM that has the policy rights to insert it) and viola, you have a rogue
> > binary that can enter passwd_t and modify shadow_t.
>
> This is another reason (besides error checking) why you want rpm to
> check the labels on the installed files at the end of the transaction to
> verify that they were all valid under the package's policy; if not, it
> should reset them to a known state.
I don't take the former being controllable as a given, though. And if
it _is_ controllable, I think similar sorts of things could apply with
just the files (eg, if we end up adding stuff so that "untrusted"
packages can't create policy, then similarly, "untrusted" packages can't
use undefined labels; this seems relatively straight-forward)
Jeremy
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
^ permalink raw reply
* [ALSA - driver 0002081]: and-atiixp module does not load into kernel
From: bugtrack @ 2006-05-02 18:25 UTC (permalink / raw)
To: alsa-devel
A NOTE has been added to this issue.
======================================================================
<https://bugtrack.alsa-project.org/alsa-bug/view.php?id=2081>
======================================================================
Reported By: KaszeL
Assigned To: tiwai
======================================================================
Project: ALSA - driver
Issue ID: 2081
Category: PCI - atiixp
Reproducibility: always
Severity: block
Priority: normal
Status: assigned
Distribution: Gentoo
Kernel Version: 2.6.16-ck6-r1
======================================================================
Date Submitted: 04-28-2006 00:07 CEST
Last Modified: 05-02-2006 20:25 CEST
======================================================================
Summary: and-atiixp module does not load into kernel
Description:
On DFI Infinity RS432 kernel module snd-atiixp does not load into kernel.
After succesfoul compilation via gentoo portage/emerge i allways get
errors similar to this:
ALSA
/usr/data/temp/portage/alsa-driver-1.0.11/work/alsa-driver-1.0.11/pci/../alsa-kernel/pci/atiixp.c:458:
atiixp: codec read timeout (reg 0)
ALSA
/usr/data/temp/portage/alsa-driver-1.0.11/work/alsa-driver-1.0.11/pci/../alsa-kernel/pci/atiixp.c:458:
atiixp: codec read timeout (reg 3c)
ALSA
/usr/data/temp/portage/alsa-driver-1.0.11/work/alsa-driver-1.0.11/pci/../alsa-kernel/pci/atiixp.c:458:
atiixp: codec read timeout (reg 1c)
ALSA
/usr/data/temp/portage/alsa-driver-1.0.11/work/alsa-driver-1.0.11/pci/ac97/ac97_codec.c:1910:
AC'97 2 does not respond - RESET
ALSA
/usr/data/temp/portage/alsa-driver-1.0.11/work/alsa-driver-1.0.11/pci/ac97/ac97_codec.c:1919:
AC'97 2 access is not valid [0xffffffff], removing mixer.
ALSA
/usr/data/temp/portage/alsa-driver-1.0.11/work/alsa-driver-1.0.11/pci/../alsa-kernel/pci/atiixp.c:1411:
atiixp: no codec available
Here is my lspci info:
00:14.5 Multimedia audio controller: ATI Technologies Inc IXP SB400 AC'97
Audio Controller (rev 80)
Subsystem: DFI Inc Unknown device 3100
Flags: 66MHz, slow devsel, IRQ 18
Memory at fe02b000 (32-bit, non-prefetchable) [size=256]
Capabilities: [40] Message Signalled Interrupts: 64bit- Queue=0/0
Enable
I've tried several kernel and alsa-driver versions. I've also tried to
compile alsa staticly into the kernel but this does not work either.
======================================================================
----------------------------------------------------------------------
tiwai - 05-02-06 18:10
----------------------------------------------------------------------
ACPI problem?
----------------------------------------------------------------------
KaszeL - 05-02-06 20:25
----------------------------------------------------------------------
Here is my kernel .config (APCI section only).
cat .config|grep ACPI
# ACPI (Advanced Configuration and Power Interface) Support
CONFIG_ACPI=y
# CONFIG_ACPI_AC is not set
# CONFIG_ACPI_BATTERY is not set
# CONFIG_ACPI_BUTTON is not set
# CONFIG_ACPI_VIDEO is not set
# CONFIG_ACPI_HOTKEY is not set
CONFIG_ACPI_FAN=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_IBM is not set
# CONFIG_ACPI_TOSHIBA is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
# CONFIG_ACPI_CONTAINER is not set
CONFIG_X86_POWERNOW_K8_ACPI=y
# CONFIG_X86_ACPI_CPUFREQ is not set
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
# CONFIG_SERIAL_8250_ACPI is not set
Should i disable APCI and try again?
Issue History
Date Modified Username Field Change
======================================================================
04-28-06 00:07 KaszeL New Issue
04-28-06 00:07 KaszeL Distribution => Gentoo
04-28-06 00:07 KaszeL Kernel Version => 2.6.16-ck6-r1
04-28-06 00:08 KaszeL Issue Monitored: KaszeL
05-02-06 18:10 tiwai Note Added: 0009567
05-02-06 20:25 KaszeL Note Added: 0009577
======================================================================
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
^ permalink raw reply
* [PATCH -rt] Make RCU API inaccessible to non-GPL Linux kernel modules
From: Paul E. McKenney @ 2006-05-02 18:24 UTC (permalink / raw)
To: linux-kernel; +Cc: mingo, dipankar
Hello!
This patch removes synchronize_kernel() (deprecated 2-APR-2005 in
http://lkml.org/lkml/2005/4/3/11) and makes the RCU API inaccessible
to non-GPL Linux kernel modules (as was announced more than one year
ago in http://lkml.org/lkml/2005/4/3/8). Tested on x86 and ppc64.
Same as the one sent yesterday, but for -rt rather than mainline.
Ingo, please apply.
Thanx, Paul
Signed-off-by: <paulmck@us.ibm.com>
---
Documentation/RCU/whatisRCU.txt | 1 -
Documentation/feature-removal-schedule.txt | 14 --------------
include/linux/rcupdate.h | 3 +--
kernel/rcupdate.c | 13 ++-----------
kernel/rcupreempt.c | 15 +++------------
5 files changed, 6 insertions(+), 40 deletions(-)
diff -urpNa -X dontdiff linux-2.6.16-rt18/Documentation/RCU/whatisRCU.txt linux-2.6.16-rt18-GPLRCU/Documentation/RCU/whatisRCU.txt
--- linux-2.6.16-rt18/Documentation/RCU/whatisRCU.txt 2006-03-19 21:53:29.000000000 -0800
+++ linux-2.6.16-rt18-GPLRCU/Documentation/RCU/whatisRCU.txt 2006-05-02 08:42:23.000000000 -0700
@@ -790,7 +790,6 @@ RCU pointer update:
RCU grace period:
- synchronize_kernel (deprecated)
synchronize_net
synchronize_sched
synchronize_rcu
diff -urpNa -X dontdiff linux-2.6.16-rt18/Documentation/feature-removal-schedule.txt linux-2.6.16-rt18-GPLRCU/Documentation/feature-removal-schedule.txt
--- linux-2.6.16-rt18/Documentation/feature-removal-schedule.txt 2006-03-19 21:53:29.000000000 -0800
+++ linux-2.6.16-rt18-GPLRCU/Documentation/feature-removal-schedule.txt 2006-05-02 08:43:24.000000000 -0700
@@ -32,21 +32,6 @@ Who: Adrian Bunk <bunk@stusta.de>
---------------------------
-What: RCU API moves to EXPORT_SYMBOL_GPL
-When: April 2006
-Files: include/linux/rcupdate.h, kernel/rcupdate.c
-Why: Outside of Linux, the only implementations of anything even
- vaguely resembling RCU that I am aware of are in DYNIX/ptx,
- VM/XA, Tornado, and K42. I do not expect anyone to port binary
- drivers or kernel modules from any of these, since the first two
- are owned by IBM and the last two are open-source research OSes.
- So these will move to GPL after a grace period to allow
- people, who might be using implementations that I am not aware
- of, to adjust to this upcoming change.
-Who: Paul E. McKenney <paulmck@us.ibm.com>
-
----------------------------
-
What: raw1394: requests of type RAW1394_REQ_ISO_SEND, RAW1394_REQ_ISO_LISTEN
When: November 2005
Why: Deprecated in favour of the new ioctl-based rawiso interface, which is
diff -urpNa -X dontdiff linux-2.6.16-rt18/include/linux/rcupdate.h linux-2.6.16-rt18-GPLRCU/include/linux/rcupdate.h
--- linux-2.6.16-rt18/include/linux/rcupdate.h 2006-05-02 08:25:48.000000000 -0700
+++ linux-2.6.16-rt18-GPLRCU/include/linux/rcupdate.h 2006-05-02 08:29:55.000000000 -0700
@@ -268,7 +268,7 @@ extern int rcu_pending(int cpu);
* softirq handlers will have completed, since in some kernels, these
* handlers can run in process context, and can block.
*
- * This primitive provides the guarantees made by the (deprecated)
+ * This primitive provides the guarantees made by the (now removed)
* synchronize_kernel() API. In contrast, synchronize_rcu() only
* guarantees that rcu_read_lock() sections will have completed.
* In "classic RCU", these two guarantees happen to be one and
@@ -292,7 +292,6 @@ extern void FASTCALL(call_rcu(struct rcu
void (*func)(struct rcu_head *head)));
extern void FASTCALL(call_rcu_bh(struct rcu_head *head,
void (*func)(struct rcu_head *head)));
-extern __deprecated_for_modules void synchronize_kernel(void);
extern void synchronize_rcu(void);
void synchronize_idle(void);
diff -urpNa -X dontdiff linux-2.6.16-rt18/kernel/rcupdate.c linux-2.6.16-rt18-GPLRCU/kernel/rcupdate.c
--- linux-2.6.16-rt18/kernel/rcupdate.c 2006-05-02 08:25:48.000000000 -0700
+++ linux-2.6.16-rt18-GPLRCU/kernel/rcupdate.c 2006-05-02 08:34:28.000000000 -0700
@@ -560,21 +560,12 @@ void __init rcu_init(void)
register_cpu_notifier(&rcu_nb);
}
-/*
- * Deprecated, use synchronize_rcu() or synchronize_sched() instead.
- */
-void synchronize_kernel(void)
-{
- synchronize_rcu();
-}
-
module_param(blimit, int, 0);
module_param(qhimark, int, 0);
module_param(qlowmark, int, 0);
#ifdef CONFIG_SMP
module_param(rsinterval, int, 0);
#endif
-EXPORT_SYMBOL(call_rcu); /* WARNING: GPL-only in April 2006. */
-EXPORT_SYMBOL(call_rcu_bh); /* WARNING: GPL-only in April 2006. */
+EXPORT_SYMBOL_GPL(call_rcu);
+EXPORT_SYMBOL_GPL(call_rcu_bh);
EXPORT_SYMBOL_GPL(synchronize_rcu);
-EXPORT_SYMBOL(synchronize_kernel); /* WARNING: GPL-only in April 2006. */
diff -urpNa -X dontdiff linux-2.6.16-rt18/kernel/rcupreempt.c linux-2.6.16-rt18-GPLRCU/kernel/rcupreempt.c
--- linux-2.6.16-rt18/kernel/rcupreempt.c 2006-05-02 08:25:48.000000000 -0700
+++ linux-2.6.16-rt18-GPLRCU/kernel/rcupreempt.c 2006-05-02 08:37:55.000000000 -0700
@@ -388,14 +388,6 @@ void __init rcu_init(void)
tasklet_init(&rcu_data.rcu_tasklet, rcu_process_callbacks, 0UL);
}
-/*
- * Deprecated, use synchronize_rcu() or synchronize_sched() instead.
- */
-void synchronize_kernel(void)
-{
- synchronize_rcu();
-}
-
#ifdef CONFIG_RCU_STATS
int rcu_read_proc_data(char *page)
{
@@ -463,10 +455,9 @@ int rcu_read_proc_ctrs_data(char *page)
#endif /* #ifdef CONFIG_RCU_STATS */
-EXPORT_SYMBOL(call_rcu); /* WARNING: GPL-only in April 2006. */
+EXPORT_SYMBOL_GPL(call_rcu);
EXPORT_SYMBOL_GPL(rcu_batches_completed);
EXPORT_SYMBOL_GPL(synchronize_rcu);
EXPORT_SYMBOL_GPL(synchronize_sched);
-EXPORT_SYMBOL(rcu_read_lock); /* WARNING: GPL-only in April 2006. */
-EXPORT_SYMBOL(rcu_read_unlock); /* WARNING: GPL-only in April 2006. */
-EXPORT_SYMBOL(synchronize_kernel); /* WARNING: Removal in April 2006. */
+EXPORT_SYMBOL_GPL(rcu_read_lock);
+EXPORT_SYMBOL_GPL(rcu_read_unlock);
^ permalink raw reply
* Re: Compiling C++ modules
From: Al Boldi @ 2006-05-02 18:21 UTC (permalink / raw)
To: Christer Weinigel; +Cc: linux-kernel
Christer Weinigel <christer@weinigel.se> wrote:
>> eCos is nice enough -- because it's mostly C :)
>
> And those parts that are C++ (from a 2 year old eCos dist) won't
> compile with a modern g++.
C++ is OO, and OO is great! OO is the natural way of doing things, and
allows one to concentrate on the issues at hand, while leaving the
nitty-gritty to the compiler to decide.
And this is the problem, as kernel development is highly sensitive to
compiler output, and which is why there are parts written in asm and others
in C.
So rewriting C with C++ would be as dumb as rewriting asm with C.
But there may be certain higher level parts in the kernel that could benefit
from rewriting C with C++, much the same as lower level parts have benefited
from rewriting them in asm.
So we have a situation like this:
low-level written in asm when needed
main-level written in C mostly
high-level written in C++ when needed
Note though, C++ is not currently viable for kernel development, due to its
enormous overhead generated by immature compiler technology. Once this has
matured, there should be no problem.
> --
> "Just how much can I get away with and still go to heaven?"
Just know that HE is one and only one.
Thanks!
--
Al
^ permalink raw reply
* [Ocfs2-devel] OCFS2 Features RFC
From: Brian Long @ 2006-05-02 18:22 UTC (permalink / raw)
To: ocfs2-devel
Hello,
I just subscribed to this list because I saw this posting in the
archives:
http://oss.oracle.com/pipermail/ocfs2-devel/2006-April/000931.html
Is there any reason you wouldn't ask the ocfs2-users community for
feedback on features as well? I hadn't subscribed to -devel because I
figured it was solely for folks actually developing the OCFS2 code :)
In my opinion, the proposed feature about "hard read only" is the most-
wanted. My team is in the middle of testing 10gR2 RAC on OCFS2 for
production deployments on RHEL 4 (hopefully your x86_64 certification is
coming soon). I assume Oracle RAC would like the "hard read only" more
than the current panic.
Also, while I saw one end user complain about your ideas of implementing
ext3 code inside OCFS2, please remember the rest of us that survive just
fine with ext3 in Red Hat's Enterprise Linux. :)
Third, is there any thoughts on integrating LVM support or using
something like Red Hat's CLVM to allow OCFS2 to layer on top of LVs
instead of just individual disks?
The biggest drawback I see in my environment is that my storage team
provides 34GB and 68GB metas from the EMC Frames. I'd rather not have a
ton of 68GB OCFS2 filesystems but rather a larger, host-controlled LV.
Trying to get the storage team to provide a 200+GB LUN and grow it on
the fly in the future is a tough task. If I could control the LV on the
host _and_ grow OCFS2 into larger LVs, that would rock.
Thanks.
/Brian/
--
Brian Long | | |
IT Data Center Systems | .|||. .|||.
Cisco Linux Developer | ..:|||||||:...:|||||||:..
Phone: (919) 392-7363 | C i s c o S y s t e m s
^ permalink raw reply
* Re: [Cbe-oss-dev] [PATCH 11/13] cell: split out board specificfil es
From: Geoff Levand @ 2006-05-02 18:20 UTC (permalink / raw)
To: michael
Cc: Levand, Geoffrey, Segher Boessenkool, Arnd Bergmann,
Arnd Bergmann, linux-kernel, linuxppc-dev, cbe-oss-dev
In-Reply-To: <1146528809.27495.21.camel@localhost.localdomain>
Michael Ellerman wrote:
> On Mon, 2006-05-01 at 15:51 -0700, Geoff Levand wrote:
>> Segher, a problem with your suggestion is that our
>> makefiles don't have as rich a set of logical ops as the
>> config files. Its easy to express 'build A if B', but not
>> so easy to do 'build A if not C'. To make this work
>> cleanly I made PPC_CELL denote !SOME_HYPERVISOR_THING,
>> so I can have constructions like this in the makefile:
>>
>> obj-$(CONFIG_PPC_CELL) += ...
>
> Hi Geoff,
>
> I've been ignoring this discussion, but now that I read it I think this
> is all kinda backwards.
>
> PPC_CELL should not denote !SOME_HYPERVISOR, it should just mean "basic
> cell support", ie. PPC_CELL gets you platforms/cell built in.
Yes, that's the way I originally made it, and I switched it back
to that in the latest patch.
> Then we can have SOME_HYPERVISOR which _adds_ support for that
> hypervisor. And PPC_CELL_BLADE which selects things which are actually
> specific to that hardware, like SPIDERNET etc.
> But SOME_HYPERVISOR should not remove support for running on bare metal,
> it should just give you the option of running on the hypervisor. Yes
> that may require testing things at runtime, that's what
> firmware_has_feature() is for.
I feel you're missing one thing though, we need PPC_CELL_NATIVE. We
don't want to build that in if we don't need it. Here's what I setup:
PPC_CELL = make descends into platforms/cell
PPC_CELL_NATIVE = add bare metal support
PPC_IBM_CELL_BLADE = add blade device drivers, etc.
> The goal should be that we have one kernel which can boot on all Cell
> implementations. In fact the ultimate goal is to have one kernel that
> can boot any platform under powerpc, that's a way off still, but we
> don't want to start going backwards.
Yes, that's the whole idea of this patch. It comes from my patch set
'cell: support multi-platform image'... But we also need to be able
to build in only the support needed. This is an important requirement
for consumer products, to reduce the image size.
In a certain class of products the kernel image and read-only parts
of the file system are stored on flash. A smaller kernel means more
space for applications. Also, a smaller kernel image loads faster.
Device startup time is very important for many consumer products.
-Geoff
^ permalink raw reply
* Re: [Cbe-oss-dev] [PATCH 11/13] cell: split out board specific files
From: Geoff Levand @ 2006-05-02 18:20 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: cbe-oss-dev, Segher Boessenkool, linux-kernel, linuxppc-dev
In-Reply-To: <200605020150.14152.arnd@arndb.de>
Arnd Bergmann wrote:
>> I also got rid of SPUFS_PRIV1_MMIO, since SPUFS_PRIV1_MMIO
>> just meant spufs with !SOME_HYPERVISOR_THING.
>>
>
> I guess that one should really be (SPU_FS && CELL_NATIVE),
> using the option Segher suggested now.
OK. I set it up that way. Updated patch below.
>> config PPC_SYSTEMSIM
>> bool " IBM Full System Simulator (systemsim) support"
>> - depends on PPC_CELL || PPC_PSERIES || PPC_MAPLE
>> + depends on PPC_IBM_CELL_BLADE || PPC_PSERIES || PPC_MAPLE
>> help
>> Support booting resulting image under IBMs Full System Simulator.
>> If you enable this option, you are able to select device
>
> whoops, this one should not be there at all. Note that I updated
> your previous patch as well to fit into the series for submission,
> and that did not include systemsim.
Sorry, didn't notice you changed it. Fixed now.
>> # needed only when building loadable spufs.ko
>> -spufs-modular-$(CONFIG_SPU_FS) += spu_syscalls.o
>> -obj-y += $(spufs-modular-m)
>> -
>> -# always needed in kernel
>> -spufs-builtin-$(CONFIG_SPU_FS) += spu_callbacks.o spu_base.o spu_priv1.o
>> -obj-y += $(spufs-builtin-y) $(spufs-builtin-m)
>> -
>> -obj-$(CONFIG_SPU_FS) += spufs/
>> +spufs-modular-$(CONFIG_SPU_FS) += spu_syscalls.o
>> +obj-$(CONFIG_SPU_BASE) += spu_callbacks.o spu_base.o \
>> + $(spufs-modular-m)
>> +ifdef CONFIG_SPU_FS
>> +obj-$(CONFIG_PPC_CELL) += spu_priv1_mmio.o
>> +endif
>
> I guess this could then become something like
>
> spu-priv1-$(CONFIG_PPC_CELL_NATIVE) += spu_priv1_mmio.o
> spufs-modular-$(CONFIG_SPU_FS) += spu_syscalls.o
> obj-$(CONFIG_SPU_BASE) += spu_callbacks.o spu_base.o \
> $(spufs-modular-m) \
> $(spu-priv1-y)
Yes, a nice way.
>> --- cell--alp--2.orig/drivers/net/Kconfig 2006-05-01 15:13:22.000000000 -0700
>> +++ cell--alp--2/drivers/net/Kconfig 2006-05-01 15:13:23.000000000 -0700
>> @@ -2179,7 +2179,7 @@
>>
>> config SPIDER_NET
>> tristate "Spider Gigabit Ethernet driver"
>> - depends on PCI && PPC_CELL
>> + depends on PCI && PPC_IBM_CELL_BLADE
>> select FW_LOADER
>> help
>> This driver supports the Gigabit Ethernet chips present on the
>
> Hmm, I'm also no longer sure if this is right. In theory, spidernet
> could be used in all sorts of products, wether they are using the
> same bridge chip or just the gigabit ethernet macro from it.
>
> For now, I guess you can just leave this one alone if you respin
> the patch another time. It's disabled by default, so the dependency
> can be updated the next time we get a user in _addition_ to PPC_CELL.
OK, based on your other mail I just left it as PCI && PPC_IBM_CELL_BLADE.
We can change it when another system uses it.
-Geoff
Split the Cell BE support into generic and platform dependent parts.
Creates new config variables PPC_CELL_NATIVE and PPC_IBM_CELL_BLADE.
The existing CONFIG_PPC_CELL is now used to denote the generic
Cell processor support.
Also renames spu_priv1.c to spu_priv1_mmio.c.
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Index: cell--alp--3/arch/powerpc/Kconfig
===================================================================
--- cell--alp--3.orig/arch/powerpc/Kconfig 2006-05-02 10:10:52.000000000 -0700
+++ cell--alp--3/arch/powerpc/Kconfig 2006-05-02 10:11:42.000000000 -0700
@@ -391,8 +391,18 @@
For more informations, refer to <http://www.970eval.com>
config PPC_CELL
- bool " Cell Broadband Processor Architecture"
+ bool
+ default n
+
+config PPC_CELL_NATIVE
+ bool
+ select PPC_CELL
+ default n
+
+config PPC_IBM_CELL_BLADE
+ bool " IBM Cell Blade"
depends on PPC_MULTIPLATFORM && PPC64
+ select PPC_CELL_NATIVE
select PPC_RTAS
select MMIO_NVRAM
select PPC_UDBG_16550
@@ -439,11 +449,6 @@
depends on PPC_MAPLE
default y
-config CELL_IIC
- depends on PPC_CELL
- bool
- default y
-
config IBMVIO
depends on PPC_PSERIES || PPC_ISERIES
bool
Index: cell--alp--3/arch/powerpc/configs/cell_defconfig
===================================================================
--- cell--alp--3.orig/arch/powerpc/configs/cell_defconfig 2006-05-02 10:10:52.000000000 -0700
+++ cell--alp--3/arch/powerpc/configs/cell_defconfig 2006-05-02 10:12:22.000000000 -0700
@@ -118,13 +118,14 @@
# CONFIG_PPC_PMAC is not set
# CONFIG_PPC_MAPLE is not set
CONFIG_PPC_CELL=y
+CONFIG_PPC_CELL_NATIVE=y
+CONFIG_PPC_IBM_CELL_BLADE=y
# CONFIG_U3_DART is not set
CONFIG_PPC_RTAS=y
# CONFIG_RTAS_ERROR_LOGGING is not set
CONFIG_RTAS_PROC=y
CONFIG_RTAS_FLASH=y
CONFIG_MMIO_NVRAM=y
-CONFIG_CELL_IIC=y
# CONFIG_PPC_MPC106 is not set
# CONFIG_CPU_FREQ is not set
# CONFIG_WANT_EARLY_SERIAL is not set
@@ -133,6 +134,7 @@
# Cell Broadband Engine options
#
CONFIG_SPU_FS=m
+CONFIG_SPU_BASE=y
CONFIG_SPUFS_MMAP=y
#
Index: cell--alp--3/arch/powerpc/platforms/cell/Kconfig
===================================================================
--- cell--alp--3.orig/arch/powerpc/platforms/cell/Kconfig 2006-05-02 10:10:52.000000000 -0700
+++ cell--alp--3/arch/powerpc/platforms/cell/Kconfig 2006-05-02 10:14:05.000000000 -0700
@@ -5,11 +5,16 @@
tristate "SPU file system"
default m
depends on PPC_CELL
+ select SPU_BASE
help
The SPU file system is used to access Synergistic Processing
Units on machines implementing the Broadband Processor
Architecture.
+config SPU_BASE
+ bool
+ default n
+
config SPUFS_MMAP
bool
depends on SPU_FS && SPARSEMEM && !PPC_64K_PAGES
Index: cell--alp--3/arch/powerpc/platforms/cell/Makefile
===================================================================
--- cell--alp--3.orig/arch/powerpc/platforms/cell/Makefile 2006-05-02 10:10:52.000000000 -0700
+++ cell--alp--3/arch/powerpc/platforms/cell/Makefile 2006-05-02 10:39:27.000000000 -0700
@@ -1,14 +1,14 @@
-obj-y += interrupt.o iommu.o setup.o spider-pic.o
-obj-y += pervasive.o
+obj-$(CONFIG_PPC_CELL_NATIVE) += interrupt.o iommu.o setup.o \
+ spider-pic.o pervasive.o
-obj-$(CONFIG_SMP) += smp.o
+ifeq ($(CONFIG_SMP),y)
+obj-$(CONFIG_PPC_CELL_NATIVE) += smp.o
+endif
# needed only when building loadable spufs.ko
-spufs-modular-$(CONFIG_SPU_FS) += spu_syscalls.o
-obj-y += $(spufs-modular-m)
+spufs-modular-$(CONFIG_SPU_FS) += spu_syscalls.o
+spu-priv1-$(CONFIG_PPC_CELL_NATIVE) += spu_priv1_mmio.o
-# always needed in kernel
-spufs-builtin-$(CONFIG_SPU_FS) += spu_callbacks.o spu_base.o spu_priv1.o
-obj-y += $(spufs-builtin-y) $(spufs-builtin-m)
-
-obj-$(CONFIG_SPU_FS) += spufs/
+obj-$(CONFIG_SPU_BASE) += spu_callbacks.o spu_base.o \
+ $(spufs-modular-m) $(spu-priv1-y)
+obj-$(CONFIG_SPU_FS) += spufs/
Index: cell--alp--3/arch/powerpc/platforms/cell/spu_priv1.c
===================================================================
--- cell--alp--3.orig/arch/powerpc/platforms/cell/spu_priv1.c 2006-05-02 10:10:52.000000000 -0700
+++ cell--alp--3/arch/powerpc/platforms/cell/spu_priv1.c 2006-05-01 17:06:59.032678000 -0700
@@ -1,133 +0,0 @@
-/*
- * access to SPU privileged registers
- */
-#include <linux/module.h>
-
-#include <asm/io.h>
-#include <asm/spu.h>
-
-void spu_int_mask_and(struct spu *spu, int class, u64 mask)
-{
- u64 old_mask;
-
- old_mask = in_be64(&spu->priv1->int_mask_RW[class]);
- out_be64(&spu->priv1->int_mask_RW[class], old_mask & mask);
-}
-EXPORT_SYMBOL_GPL(spu_int_mask_and);
-
-void spu_int_mask_or(struct spu *spu, int class, u64 mask)
-{
- u64 old_mask;
-
- old_mask = in_be64(&spu->priv1->int_mask_RW[class]);
- out_be64(&spu->priv1->int_mask_RW[class], old_mask | mask);
-}
-EXPORT_SYMBOL_GPL(spu_int_mask_or);
-
-void spu_int_mask_set(struct spu *spu, int class, u64 mask)
-{
- out_be64(&spu->priv1->int_mask_RW[class], mask);
-}
-EXPORT_SYMBOL_GPL(spu_int_mask_set);
-
-u64 spu_int_mask_get(struct spu *spu, int class)
-{
- return in_be64(&spu->priv1->int_mask_RW[class]);
-}
-EXPORT_SYMBOL_GPL(spu_int_mask_get);
-
-void spu_int_stat_clear(struct spu *spu, int class, u64 stat)
-{
- out_be64(&spu->priv1->int_stat_RW[class], stat);
-}
-EXPORT_SYMBOL_GPL(spu_int_stat_clear);
-
-u64 spu_int_stat_get(struct spu *spu, int class)
-{
- return in_be64(&spu->priv1->int_stat_RW[class]);
-}
-EXPORT_SYMBOL_GPL(spu_int_stat_get);
-
-void spu_int_route_set(struct spu *spu, u64 route)
-{
- out_be64(&spu->priv1->int_route_RW, route);
-}
-EXPORT_SYMBOL_GPL(spu_int_route_set);
-
-u64 spu_mfc_dar_get(struct spu *spu)
-{
- return in_be64(&spu->priv1->mfc_dar_RW);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_dar_get);
-
-u64 spu_mfc_dsisr_get(struct spu *spu)
-{
- return in_be64(&spu->priv1->mfc_dsisr_RW);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_dsisr_get);
-
-void spu_mfc_dsisr_set(struct spu *spu, u64 dsisr)
-{
- out_be64(&spu->priv1->mfc_dsisr_RW, dsisr);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_dsisr_set);
-
-void spu_mfc_sdr_set(struct spu *spu, u64 sdr)
-{
- out_be64(&spu->priv1->mfc_sdr_RW, sdr);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_sdr_set);
-
-void spu_mfc_sr1_set(struct spu *spu, u64 sr1)
-{
- out_be64(&spu->priv1->mfc_sr1_RW, sr1);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_sr1_set);
-
-u64 spu_mfc_sr1_get(struct spu *spu)
-{
- return in_be64(&spu->priv1->mfc_sr1_RW);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_sr1_get);
-
-void spu_mfc_tclass_id_set(struct spu *spu, u64 tclass_id)
-{
- out_be64(&spu->priv1->mfc_tclass_id_RW, tclass_id);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_tclass_id_set);
-
-u64 spu_mfc_tclass_id_get(struct spu *spu)
-{
- return in_be64(&spu->priv1->mfc_tclass_id_RW);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_tclass_id_get);
-
-void spu_tlb_invalidate(struct spu *spu)
-{
- out_be64(&spu->priv1->tlb_invalidate_entry_W, 0ul);
-}
-EXPORT_SYMBOL_GPL(spu_tlb_invalidate);
-
-void spu_resource_allocation_groupID_set(struct spu *spu, u64 id)
-{
- out_be64(&spu->priv1->resource_allocation_groupID_RW, id);
-}
-EXPORT_SYMBOL_GPL(spu_resource_allocation_groupID_set);
-
-u64 spu_resource_allocation_groupID_get(struct spu *spu)
-{
- return in_be64(&spu->priv1->resource_allocation_groupID_RW);
-}
-EXPORT_SYMBOL_GPL(spu_resource_allocation_groupID_get);
-
-void spu_resource_allocation_enable_set(struct spu *spu, u64 enable)
-{
- out_be64(&spu->priv1->resource_allocation_enable_RW, enable);
-}
-EXPORT_SYMBOL_GPL(spu_resource_allocation_enable_set);
-
-u64 spu_resource_allocation_enable_get(struct spu *spu)
-{
- return in_be64(&spu->priv1->resource_allocation_enable_RW);
-}
-EXPORT_SYMBOL_GPL(spu_resource_allocation_enable_get);
Index: cell--alp--3/arch/powerpc/platforms/cell/spu_priv1_mmio.c
===================================================================
--- cell--alp--3.orig/arch/powerpc/platforms/cell/spu_priv1_mmio.c 2006-05-01 17:06:59.032678000 -0700
+++ cell--alp--3/arch/powerpc/platforms/cell/spu_priv1_mmio.c 2006-05-02 10:11:42.000000000 -0700
@@ -0,0 +1,133 @@
+/*
+ * access to SPU privileged registers
+ */
+#include <linux/module.h>
+
+#include <asm/io.h>
+#include <asm/spu.h>
+
+void spu_int_mask_and(struct spu *spu, int class, u64 mask)
+{
+ u64 old_mask;
+
+ old_mask = in_be64(&spu->priv1->int_mask_RW[class]);
+ out_be64(&spu->priv1->int_mask_RW[class], old_mask & mask);
+}
+EXPORT_SYMBOL_GPL(spu_int_mask_and);
+
+void spu_int_mask_or(struct spu *spu, int class, u64 mask)
+{
+ u64 old_mask;
+
+ old_mask = in_be64(&spu->priv1->int_mask_RW[class]);
+ out_be64(&spu->priv1->int_mask_RW[class], old_mask | mask);
+}
+EXPORT_SYMBOL_GPL(spu_int_mask_or);
+
+void spu_int_mask_set(struct spu *spu, int class, u64 mask)
+{
+ out_be64(&spu->priv1->int_mask_RW[class], mask);
+}
+EXPORT_SYMBOL_GPL(spu_int_mask_set);
+
+u64 spu_int_mask_get(struct spu *spu, int class)
+{
+ return in_be64(&spu->priv1->int_mask_RW[class]);
+}
+EXPORT_SYMBOL_GPL(spu_int_mask_get);
+
+void spu_int_stat_clear(struct spu *spu, int class, u64 stat)
+{
+ out_be64(&spu->priv1->int_stat_RW[class], stat);
+}
+EXPORT_SYMBOL_GPL(spu_int_stat_clear);
+
+u64 spu_int_stat_get(struct spu *spu, int class)
+{
+ return in_be64(&spu->priv1->int_stat_RW[class]);
+}
+EXPORT_SYMBOL_GPL(spu_int_stat_get);
+
+void spu_int_route_set(struct spu *spu, u64 route)
+{
+ out_be64(&spu->priv1->int_route_RW, route);
+}
+EXPORT_SYMBOL_GPL(spu_int_route_set);
+
+u64 spu_mfc_dar_get(struct spu *spu)
+{
+ return in_be64(&spu->priv1->mfc_dar_RW);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_dar_get);
+
+u64 spu_mfc_dsisr_get(struct spu *spu)
+{
+ return in_be64(&spu->priv1->mfc_dsisr_RW);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_dsisr_get);
+
+void spu_mfc_dsisr_set(struct spu *spu, u64 dsisr)
+{
+ out_be64(&spu->priv1->mfc_dsisr_RW, dsisr);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_dsisr_set);
+
+void spu_mfc_sdr_set(struct spu *spu, u64 sdr)
+{
+ out_be64(&spu->priv1->mfc_sdr_RW, sdr);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_sdr_set);
+
+void spu_mfc_sr1_set(struct spu *spu, u64 sr1)
+{
+ out_be64(&spu->priv1->mfc_sr1_RW, sr1);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_sr1_set);
+
+u64 spu_mfc_sr1_get(struct spu *spu)
+{
+ return in_be64(&spu->priv1->mfc_sr1_RW);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_sr1_get);
+
+void spu_mfc_tclass_id_set(struct spu *spu, u64 tclass_id)
+{
+ out_be64(&spu->priv1->mfc_tclass_id_RW, tclass_id);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_tclass_id_set);
+
+u64 spu_mfc_tclass_id_get(struct spu *spu)
+{
+ return in_be64(&spu->priv1->mfc_tclass_id_RW);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_tclass_id_get);
+
+void spu_tlb_invalidate(struct spu *spu)
+{
+ out_be64(&spu->priv1->tlb_invalidate_entry_W, 0ul);
+}
+EXPORT_SYMBOL_GPL(spu_tlb_invalidate);
+
+void spu_resource_allocation_groupID_set(struct spu *spu, u64 id)
+{
+ out_be64(&spu->priv1->resource_allocation_groupID_RW, id);
+}
+EXPORT_SYMBOL_GPL(spu_resource_allocation_groupID_set);
+
+u64 spu_resource_allocation_groupID_get(struct spu *spu)
+{
+ return in_be64(&spu->priv1->resource_allocation_groupID_RW);
+}
+EXPORT_SYMBOL_GPL(spu_resource_allocation_groupID_get);
+
+void spu_resource_allocation_enable_set(struct spu *spu, u64 enable)
+{
+ out_be64(&spu->priv1->resource_allocation_enable_RW, enable);
+}
+EXPORT_SYMBOL_GPL(spu_resource_allocation_enable_set);
+
+u64 spu_resource_allocation_enable_get(struct spu *spu)
+{
+ return in_be64(&spu->priv1->resource_allocation_enable_RW);
+}
+EXPORT_SYMBOL_GPL(spu_resource_allocation_enable_get);
Index: cell--alp--3/drivers/net/Kconfig
===================================================================
--- cell--alp--3.orig/drivers/net/Kconfig 2006-05-02 10:10:52.000000000 -0700
+++ cell--alp--3/drivers/net/Kconfig 2006-05-02 10:11:42.000000000 -0700
@@ -2171,7 +2171,7 @@
config SPIDER_NET
tristate "Spider Gigabit Ethernet driver"
- depends on PCI && PPC_CELL
+ depends on PCI && PPC_IBM_CELL_BLADE
select FW_LOADER
help
This driver supports the Gigabit Ethernet chips present on the
^ permalink raw reply
* Re: [Cbe-oss-dev] [PATCH 11/13] cell: split out board specificfil es
From: Geoff Levand @ 2006-05-02 18:20 UTC (permalink / raw)
To: michael
Cc: Arnd Bergmann, Levand, Geoffrey, linux-kernel, linuxppc-dev,
cbe-oss-dev, Arnd Bergmann
In-Reply-To: <1146528809.27495.21.camel@localhost.localdomain>
Michael Ellerman wrote:
> On Mon, 2006-05-01 at 15:51 -0700, Geoff Levand wrote:
>> Segher, a problem with your suggestion is that our
>> makefiles don't have as rich a set of logical ops as the
>> config files. Its easy to express 'build A if B', but not
>> so easy to do 'build A if not C'. To make this work
>> cleanly I made PPC_CELL denote !SOME_HYPERVISOR_THING,
>> so I can have constructions like this in the makefile:
>>
>> obj-$(CONFIG_PPC_CELL) += ...
>
> Hi Geoff,
>
> I've been ignoring this discussion, but now that I read it I think this
> is all kinda backwards.
>
> PPC_CELL should not denote !SOME_HYPERVISOR, it should just mean "basic
> cell support", ie. PPC_CELL gets you platforms/cell built in.
Yes, that's the way I originally made it, and I switched it back
to that in the latest patch.
> Then we can have SOME_HYPERVISOR which _adds_ support for that
> hypervisor. And PPC_CELL_BLADE which selects things which are actually
> specific to that hardware, like SPIDERNET etc.
> But SOME_HYPERVISOR should not remove support for running on bare metal,
> it should just give you the option of running on the hypervisor. Yes
> that may require testing things at runtime, that's what
> firmware_has_feature() is for.
I feel you're missing one thing though, we need PPC_CELL_NATIVE. We
don't want to build that in if we don't need it. Here's what I setup:
PPC_CELL = make descends into platforms/cell
PPC_CELL_NATIVE = add bare metal support
PPC_IBM_CELL_BLADE = add blade device drivers, etc.
> The goal should be that we have one kernel which can boot on all Cell
> implementations. In fact the ultimate goal is to have one kernel that
> can boot any platform under powerpc, that's a way off still, but we
> don't want to start going backwards.
Yes, that's the whole idea of this patch. It comes from my patch set
'cell: support multi-platform image'... But we also need to be able
to build in only the support needed. This is an important requirement
for consumer products, to reduce the image size.
In a certain class of products the kernel image and read-only parts
of the file system are stored on flash. A smaller kernel means more
space for applications. Also, a smaller kernel image loads faster.
Device startup time is very important for many consumer products.
-Geoff
^ permalink raw reply
* Re: [Cbe-oss-dev] [PATCH 11/13] cell: split out board specific files
From: Geoff Levand @ 2006-05-02 18:20 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: linuxppc-dev, cbe-oss-dev, linux-kernel
In-Reply-To: <200605020150.14152.arnd@arndb.de>
Arnd Bergmann wrote:
>> I also got rid of SPUFS_PRIV1_MMIO, since SPUFS_PRIV1_MMIO
>> just meant spufs with !SOME_HYPERVISOR_THING.
>>
>
> I guess that one should really be (SPU_FS && CELL_NATIVE),
> using the option Segher suggested now.
OK. I set it up that way. Updated patch below.
>> config PPC_SYSTEMSIM
>> bool " IBM Full System Simulator (systemsim) support"
>> - depends on PPC_CELL || PPC_PSERIES || PPC_MAPLE
>> + depends on PPC_IBM_CELL_BLADE || PPC_PSERIES || PPC_MAPLE
>> help
>> Support booting resulting image under IBMs Full System Simulator.
>> If you enable this option, you are able to select device
>
> whoops, this one should not be there at all. Note that I updated
> your previous patch as well to fit into the series for submission,
> and that did not include systemsim.
Sorry, didn't notice you changed it. Fixed now.
>> # needed only when building loadable spufs.ko
>> -spufs-modular-$(CONFIG_SPU_FS) += spu_syscalls.o
>> -obj-y += $(spufs-modular-m)
>> -
>> -# always needed in kernel
>> -spufs-builtin-$(CONFIG_SPU_FS) += spu_callbacks.o spu_base.o spu_priv1.o
>> -obj-y += $(spufs-builtin-y) $(spufs-builtin-m)
>> -
>> -obj-$(CONFIG_SPU_FS) += spufs/
>> +spufs-modular-$(CONFIG_SPU_FS) += spu_syscalls.o
>> +obj-$(CONFIG_SPU_BASE) += spu_callbacks.o spu_base.o \
>> + $(spufs-modular-m)
>> +ifdef CONFIG_SPU_FS
>> +obj-$(CONFIG_PPC_CELL) += spu_priv1_mmio.o
>> +endif
>
> I guess this could then become something like
>
> spu-priv1-$(CONFIG_PPC_CELL_NATIVE) += spu_priv1_mmio.o
> spufs-modular-$(CONFIG_SPU_FS) += spu_syscalls.o
> obj-$(CONFIG_SPU_BASE) += spu_callbacks.o spu_base.o \
> $(spufs-modular-m) \
> $(spu-priv1-y)
Yes, a nice way.
>> --- cell--alp--2.orig/drivers/net/Kconfig 2006-05-01 15:13:22.000000000 -0700
>> +++ cell--alp--2/drivers/net/Kconfig 2006-05-01 15:13:23.000000000 -0700
>> @@ -2179,7 +2179,7 @@
>>
>> config SPIDER_NET
>> tristate "Spider Gigabit Ethernet driver"
>> - depends on PCI && PPC_CELL
>> + depends on PCI && PPC_IBM_CELL_BLADE
>> select FW_LOADER
>> help
>> This driver supports the Gigabit Ethernet chips present on the
>
> Hmm, I'm also no longer sure if this is right. In theory, spidernet
> could be used in all sorts of products, wether they are using the
> same bridge chip or just the gigabit ethernet macro from it.
>
> For now, I guess you can just leave this one alone if you respin
> the patch another time. It's disabled by default, so the dependency
> can be updated the next time we get a user in _addition_ to PPC_CELL.
OK, based on your other mail I just left it as PCI && PPC_IBM_CELL_BLADE.
We can change it when another system uses it.
-Geoff
Split the Cell BE support into generic and platform dependent parts.
Creates new config variables PPC_CELL_NATIVE and PPC_IBM_CELL_BLADE.
The existing CONFIG_PPC_CELL is now used to denote the generic
Cell processor support.
Also renames spu_priv1.c to spu_priv1_mmio.c.
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Index: cell--alp--3/arch/powerpc/Kconfig
===================================================================
--- cell--alp--3.orig/arch/powerpc/Kconfig 2006-05-02 10:10:52.000000000 -0700
+++ cell--alp--3/arch/powerpc/Kconfig 2006-05-02 10:11:42.000000000 -0700
@@ -391,8 +391,18 @@
For more informations, refer to <http://www.970eval.com>
config PPC_CELL
- bool " Cell Broadband Processor Architecture"
+ bool
+ default n
+
+config PPC_CELL_NATIVE
+ bool
+ select PPC_CELL
+ default n
+
+config PPC_IBM_CELL_BLADE
+ bool " IBM Cell Blade"
depends on PPC_MULTIPLATFORM && PPC64
+ select PPC_CELL_NATIVE
select PPC_RTAS
select MMIO_NVRAM
select PPC_UDBG_16550
@@ -439,11 +449,6 @@
depends on PPC_MAPLE
default y
-config CELL_IIC
- depends on PPC_CELL
- bool
- default y
-
config IBMVIO
depends on PPC_PSERIES || PPC_ISERIES
bool
Index: cell--alp--3/arch/powerpc/configs/cell_defconfig
===================================================================
--- cell--alp--3.orig/arch/powerpc/configs/cell_defconfig 2006-05-02 10:10:52.000000000 -0700
+++ cell--alp--3/arch/powerpc/configs/cell_defconfig 2006-05-02 10:12:22.000000000 -0700
@@ -118,13 +118,14 @@
# CONFIG_PPC_PMAC is not set
# CONFIG_PPC_MAPLE is not set
CONFIG_PPC_CELL=y
+CONFIG_PPC_CELL_NATIVE=y
+CONFIG_PPC_IBM_CELL_BLADE=y
# CONFIG_U3_DART is not set
CONFIG_PPC_RTAS=y
# CONFIG_RTAS_ERROR_LOGGING is not set
CONFIG_RTAS_PROC=y
CONFIG_RTAS_FLASH=y
CONFIG_MMIO_NVRAM=y
-CONFIG_CELL_IIC=y
# CONFIG_PPC_MPC106 is not set
# CONFIG_CPU_FREQ is not set
# CONFIG_WANT_EARLY_SERIAL is not set
@@ -133,6 +134,7 @@
# Cell Broadband Engine options
#
CONFIG_SPU_FS=m
+CONFIG_SPU_BASE=y
CONFIG_SPUFS_MMAP=y
#
Index: cell--alp--3/arch/powerpc/platforms/cell/Kconfig
===================================================================
--- cell--alp--3.orig/arch/powerpc/platforms/cell/Kconfig 2006-05-02 10:10:52.000000000 -0700
+++ cell--alp--3/arch/powerpc/platforms/cell/Kconfig 2006-05-02 10:14:05.000000000 -0700
@@ -5,11 +5,16 @@
tristate "SPU file system"
default m
depends on PPC_CELL
+ select SPU_BASE
help
The SPU file system is used to access Synergistic Processing
Units on machines implementing the Broadband Processor
Architecture.
+config SPU_BASE
+ bool
+ default n
+
config SPUFS_MMAP
bool
depends on SPU_FS && SPARSEMEM && !PPC_64K_PAGES
Index: cell--alp--3/arch/powerpc/platforms/cell/Makefile
===================================================================
--- cell--alp--3.orig/arch/powerpc/platforms/cell/Makefile 2006-05-02 10:10:52.000000000 -0700
+++ cell--alp--3/arch/powerpc/platforms/cell/Makefile 2006-05-02 10:39:27.000000000 -0700
@@ -1,14 +1,14 @@
-obj-y += interrupt.o iommu.o setup.o spider-pic.o
-obj-y += pervasive.o
+obj-$(CONFIG_PPC_CELL_NATIVE) += interrupt.o iommu.o setup.o \
+ spider-pic.o pervasive.o
-obj-$(CONFIG_SMP) += smp.o
+ifeq ($(CONFIG_SMP),y)
+obj-$(CONFIG_PPC_CELL_NATIVE) += smp.o
+endif
# needed only when building loadable spufs.ko
-spufs-modular-$(CONFIG_SPU_FS) += spu_syscalls.o
-obj-y += $(spufs-modular-m)
+spufs-modular-$(CONFIG_SPU_FS) += spu_syscalls.o
+spu-priv1-$(CONFIG_PPC_CELL_NATIVE) += spu_priv1_mmio.o
-# always needed in kernel
-spufs-builtin-$(CONFIG_SPU_FS) += spu_callbacks.o spu_base.o spu_priv1.o
-obj-y += $(spufs-builtin-y) $(spufs-builtin-m)
-
-obj-$(CONFIG_SPU_FS) += spufs/
+obj-$(CONFIG_SPU_BASE) += spu_callbacks.o spu_base.o \
+ $(spufs-modular-m) $(spu-priv1-y)
+obj-$(CONFIG_SPU_FS) += spufs/
Index: cell--alp--3/arch/powerpc/platforms/cell/spu_priv1.c
===================================================================
--- cell--alp--3.orig/arch/powerpc/platforms/cell/spu_priv1.c 2006-05-02 10:10:52.000000000 -0700
+++ cell--alp--3/arch/powerpc/platforms/cell/spu_priv1.c 2006-05-01 17:06:59.032678000 -0700
@@ -1,133 +0,0 @@
-/*
- * access to SPU privileged registers
- */
-#include <linux/module.h>
-
-#include <asm/io.h>
-#include <asm/spu.h>
-
-void spu_int_mask_and(struct spu *spu, int class, u64 mask)
-{
- u64 old_mask;
-
- old_mask = in_be64(&spu->priv1->int_mask_RW[class]);
- out_be64(&spu->priv1->int_mask_RW[class], old_mask & mask);
-}
-EXPORT_SYMBOL_GPL(spu_int_mask_and);
-
-void spu_int_mask_or(struct spu *spu, int class, u64 mask)
-{
- u64 old_mask;
-
- old_mask = in_be64(&spu->priv1->int_mask_RW[class]);
- out_be64(&spu->priv1->int_mask_RW[class], old_mask | mask);
-}
-EXPORT_SYMBOL_GPL(spu_int_mask_or);
-
-void spu_int_mask_set(struct spu *spu, int class, u64 mask)
-{
- out_be64(&spu->priv1->int_mask_RW[class], mask);
-}
-EXPORT_SYMBOL_GPL(spu_int_mask_set);
-
-u64 spu_int_mask_get(struct spu *spu, int class)
-{
- return in_be64(&spu->priv1->int_mask_RW[class]);
-}
-EXPORT_SYMBOL_GPL(spu_int_mask_get);
-
-void spu_int_stat_clear(struct spu *spu, int class, u64 stat)
-{
- out_be64(&spu->priv1->int_stat_RW[class], stat);
-}
-EXPORT_SYMBOL_GPL(spu_int_stat_clear);
-
-u64 spu_int_stat_get(struct spu *spu, int class)
-{
- return in_be64(&spu->priv1->int_stat_RW[class]);
-}
-EXPORT_SYMBOL_GPL(spu_int_stat_get);
-
-void spu_int_route_set(struct spu *spu, u64 route)
-{
- out_be64(&spu->priv1->int_route_RW, route);
-}
-EXPORT_SYMBOL_GPL(spu_int_route_set);
-
-u64 spu_mfc_dar_get(struct spu *spu)
-{
- return in_be64(&spu->priv1->mfc_dar_RW);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_dar_get);
-
-u64 spu_mfc_dsisr_get(struct spu *spu)
-{
- return in_be64(&spu->priv1->mfc_dsisr_RW);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_dsisr_get);
-
-void spu_mfc_dsisr_set(struct spu *spu, u64 dsisr)
-{
- out_be64(&spu->priv1->mfc_dsisr_RW, dsisr);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_dsisr_set);
-
-void spu_mfc_sdr_set(struct spu *spu, u64 sdr)
-{
- out_be64(&spu->priv1->mfc_sdr_RW, sdr);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_sdr_set);
-
-void spu_mfc_sr1_set(struct spu *spu, u64 sr1)
-{
- out_be64(&spu->priv1->mfc_sr1_RW, sr1);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_sr1_set);
-
-u64 spu_mfc_sr1_get(struct spu *spu)
-{
- return in_be64(&spu->priv1->mfc_sr1_RW);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_sr1_get);
-
-void spu_mfc_tclass_id_set(struct spu *spu, u64 tclass_id)
-{
- out_be64(&spu->priv1->mfc_tclass_id_RW, tclass_id);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_tclass_id_set);
-
-u64 spu_mfc_tclass_id_get(struct spu *spu)
-{
- return in_be64(&spu->priv1->mfc_tclass_id_RW);
-}
-EXPORT_SYMBOL_GPL(spu_mfc_tclass_id_get);
-
-void spu_tlb_invalidate(struct spu *spu)
-{
- out_be64(&spu->priv1->tlb_invalidate_entry_W, 0ul);
-}
-EXPORT_SYMBOL_GPL(spu_tlb_invalidate);
-
-void spu_resource_allocation_groupID_set(struct spu *spu, u64 id)
-{
- out_be64(&spu->priv1->resource_allocation_groupID_RW, id);
-}
-EXPORT_SYMBOL_GPL(spu_resource_allocation_groupID_set);
-
-u64 spu_resource_allocation_groupID_get(struct spu *spu)
-{
- return in_be64(&spu->priv1->resource_allocation_groupID_RW);
-}
-EXPORT_SYMBOL_GPL(spu_resource_allocation_groupID_get);
-
-void spu_resource_allocation_enable_set(struct spu *spu, u64 enable)
-{
- out_be64(&spu->priv1->resource_allocation_enable_RW, enable);
-}
-EXPORT_SYMBOL_GPL(spu_resource_allocation_enable_set);
-
-u64 spu_resource_allocation_enable_get(struct spu *spu)
-{
- return in_be64(&spu->priv1->resource_allocation_enable_RW);
-}
-EXPORT_SYMBOL_GPL(spu_resource_allocation_enable_get);
Index: cell--alp--3/arch/powerpc/platforms/cell/spu_priv1_mmio.c
===================================================================
--- cell--alp--3.orig/arch/powerpc/platforms/cell/spu_priv1_mmio.c 2006-05-01 17:06:59.032678000 -0700
+++ cell--alp--3/arch/powerpc/platforms/cell/spu_priv1_mmio.c 2006-05-02 10:11:42.000000000 -0700
@@ -0,0 +1,133 @@
+/*
+ * access to SPU privileged registers
+ */
+#include <linux/module.h>
+
+#include <asm/io.h>
+#include <asm/spu.h>
+
+void spu_int_mask_and(struct spu *spu, int class, u64 mask)
+{
+ u64 old_mask;
+
+ old_mask = in_be64(&spu->priv1->int_mask_RW[class]);
+ out_be64(&spu->priv1->int_mask_RW[class], old_mask & mask);
+}
+EXPORT_SYMBOL_GPL(spu_int_mask_and);
+
+void spu_int_mask_or(struct spu *spu, int class, u64 mask)
+{
+ u64 old_mask;
+
+ old_mask = in_be64(&spu->priv1->int_mask_RW[class]);
+ out_be64(&spu->priv1->int_mask_RW[class], old_mask | mask);
+}
+EXPORT_SYMBOL_GPL(spu_int_mask_or);
+
+void spu_int_mask_set(struct spu *spu, int class, u64 mask)
+{
+ out_be64(&spu->priv1->int_mask_RW[class], mask);
+}
+EXPORT_SYMBOL_GPL(spu_int_mask_set);
+
+u64 spu_int_mask_get(struct spu *spu, int class)
+{
+ return in_be64(&spu->priv1->int_mask_RW[class]);
+}
+EXPORT_SYMBOL_GPL(spu_int_mask_get);
+
+void spu_int_stat_clear(struct spu *spu, int class, u64 stat)
+{
+ out_be64(&spu->priv1->int_stat_RW[class], stat);
+}
+EXPORT_SYMBOL_GPL(spu_int_stat_clear);
+
+u64 spu_int_stat_get(struct spu *spu, int class)
+{
+ return in_be64(&spu->priv1->int_stat_RW[class]);
+}
+EXPORT_SYMBOL_GPL(spu_int_stat_get);
+
+void spu_int_route_set(struct spu *spu, u64 route)
+{
+ out_be64(&spu->priv1->int_route_RW, route);
+}
+EXPORT_SYMBOL_GPL(spu_int_route_set);
+
+u64 spu_mfc_dar_get(struct spu *spu)
+{
+ return in_be64(&spu->priv1->mfc_dar_RW);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_dar_get);
+
+u64 spu_mfc_dsisr_get(struct spu *spu)
+{
+ return in_be64(&spu->priv1->mfc_dsisr_RW);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_dsisr_get);
+
+void spu_mfc_dsisr_set(struct spu *spu, u64 dsisr)
+{
+ out_be64(&spu->priv1->mfc_dsisr_RW, dsisr);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_dsisr_set);
+
+void spu_mfc_sdr_set(struct spu *spu, u64 sdr)
+{
+ out_be64(&spu->priv1->mfc_sdr_RW, sdr);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_sdr_set);
+
+void spu_mfc_sr1_set(struct spu *spu, u64 sr1)
+{
+ out_be64(&spu->priv1->mfc_sr1_RW, sr1);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_sr1_set);
+
+u64 spu_mfc_sr1_get(struct spu *spu)
+{
+ return in_be64(&spu->priv1->mfc_sr1_RW);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_sr1_get);
+
+void spu_mfc_tclass_id_set(struct spu *spu, u64 tclass_id)
+{
+ out_be64(&spu->priv1->mfc_tclass_id_RW, tclass_id);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_tclass_id_set);
+
+u64 spu_mfc_tclass_id_get(struct spu *spu)
+{
+ return in_be64(&spu->priv1->mfc_tclass_id_RW);
+}
+EXPORT_SYMBOL_GPL(spu_mfc_tclass_id_get);
+
+void spu_tlb_invalidate(struct spu *spu)
+{
+ out_be64(&spu->priv1->tlb_invalidate_entry_W, 0ul);
+}
+EXPORT_SYMBOL_GPL(spu_tlb_invalidate);
+
+void spu_resource_allocation_groupID_set(struct spu *spu, u64 id)
+{
+ out_be64(&spu->priv1->resource_allocation_groupID_RW, id);
+}
+EXPORT_SYMBOL_GPL(spu_resource_allocation_groupID_set);
+
+u64 spu_resource_allocation_groupID_get(struct spu *spu)
+{
+ return in_be64(&spu->priv1->resource_allocation_groupID_RW);
+}
+EXPORT_SYMBOL_GPL(spu_resource_allocation_groupID_get);
+
+void spu_resource_allocation_enable_set(struct spu *spu, u64 enable)
+{
+ out_be64(&spu->priv1->resource_allocation_enable_RW, enable);
+}
+EXPORT_SYMBOL_GPL(spu_resource_allocation_enable_set);
+
+u64 spu_resource_allocation_enable_get(struct spu *spu)
+{
+ return in_be64(&spu->priv1->resource_allocation_enable_RW);
+}
+EXPORT_SYMBOL_GPL(spu_resource_allocation_enable_get);
Index: cell--alp--3/drivers/net/Kconfig
===================================================================
--- cell--alp--3.orig/drivers/net/Kconfig 2006-05-02 10:10:52.000000000 -0700
+++ cell--alp--3/drivers/net/Kconfig 2006-05-02 10:11:42.000000000 -0700
@@ -2171,7 +2171,7 @@
config SPIDER_NET
tristate "Spider Gigabit Ethernet driver"
- depends on PCI && PPC_CELL
+ depends on PCI && PPC_IBM_CELL_BLADE
select FW_LOADER
help
This driver supports the Gigabit Ethernet chips present on the
^ permalink raw reply
* Re: USB on MPC8349EMDS
From: Kumar Gala @ 2006-05-02 18:19 UTC (permalink / raw)
To: Prashant Viswanathan; +Cc: linuxppc-embedded
In-Reply-To: <DDBD7B17DB2ECE48BCD94C593F7255B401551C7A@monk.echelon.echcorp.com>
On May 2, 2006, at 12:57 PM, Prashant Viswanathan wrote:
> Hi,
>
> I have linux kernel (2.6.11) from Freescale running on the
> MPC8349EMDS.
> I am using the BSP from Freescale which is supposed to have USB
> support.
>
> However, I seem to be having problems with USB host support.
>
> When I insert a USB Mass storage device (thumb drive), I get the
> following errors
>
> / # usb 1-2: new high speed USB device using fsl-usb2-mph and
> address 8
> usb 1-2: khubd timed out on ep0in
> usb 1-2: new high speed USB device using fsl-usb2-mph and address 9
> usb 1-2: khubd timed out on ep0in
>
> It does not show up in /proc/bus/usb/devices (I do have usbfs
> mounted).
>
> I also have usb-utils installed and lsusb fails to list the device.
>
> I have also tried other USB devices and get similar errors.
>
> Has anybody else experience similar problems? Any pointers/help
> will be
> appreciated.
I know there are some bugs in the Freescale driver that was released
as part of their BSP.
Are you using a PMC2USB module or just the USB ports on the SYS card?
- k
^ permalink raw reply
* Re: [PATCH 00/32] Convert ARM to generic irq subsystem
From: Adam Brooks @ 2006-05-02 18:18 UTC (permalink / raw)
To: Thomas Gleixner; +Cc: linux-omap-open-source, LAK
In-Reply-To: <1146573190.1322.678.camel@localhost.localdomain>
Everything appears to be working on the IOP3xx boards. There is one
thing I would like to confirm. None of the patches changed anything
in the mach-iop3xx directory. Was this because no changes were
required, or is our arch not actually using the new mechanism at this
point?
-Adam Brooks
On 5/2/06, Thomas Gleixner <tglx@linutronix.de> wrote:
> On Tue, 2006-05-02 at 04:59 -0700, Tony Lindgren wrote:
> > > Applied and released -rc3-armirq2.
> >
> > Patches seem to work for me too on various omap boards. Also dyntick
> > works.
>
> Thanks for testing.
>
> > Should this part in kernel/irq/handle.c be CONFIG_ARM for now?
>
> Yes, until we find a unified solution for dynamic ticks.
>
> tglx
>
>
>
>
> -------------------------------------------------------------------
> List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
> FAQ: http://www.arm.linux.org.uk/mailinglists/faq.php
> Etiquette: http://www.arm.linux.org.uk/mailinglists/etiquette.php
>
-------------------------------------------------------------------
List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ: http://www.arm.linux.org.uk/mailinglists/faq.php
Etiquette: http://www.arm.linux.org.uk/mailinglists/etiquette.php
^ permalink raw reply
* [ALSA - driver 0002093]: Mute mixer software switch not working
From: bugtrack @ 2006-05-02 18:17 UTC (permalink / raw)
To: alsa-devel
A NOTE has been added to this issue.
======================================================================
<https://bugtrack.alsa-project.org/alsa-bug/view.php?id=2093>
======================================================================
Reported By: fdoffizi01
Assigned To: tiwai
======================================================================
Project: ALSA - driver
Issue ID: 2093
Category: PCI - hda-intel
Reproducibility: always
Severity: minor
Priority: normal
Status: assigned
Distribution:
Kernel Version:
======================================================================
Date Submitted: 05-02-2006 19:41 CEST
Last Modified: 05-02-2006 20:17 CEST
======================================================================
Summary: Mute mixer software switch not working
Description:
Trying to mute Master output from mixer (kmix, alsamixer and so on...) I
got no results, sound continue to be played as if channel is muted.
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0001890 Only the PCM channel in alsa mixer, unm...
======================================================================
----------------------------------------------------------------------
tiwai - 05-02-06 20:01
----------------------------------------------------------------------
Try the uploaded patch.
----------------------------------------------------------------------
fdoffizi01 - 05-02-06 20:17
----------------------------------------------------------------------
It works, now. Great. (I noticed applying this patch it disappear a
controller I had before (maybe cdrom one if I remember well, not know if
it worked or was useful, just to tell you about it...)
Issue History
Date Modified Username Field Change
======================================================================
05-02-06 19:41 fdoffizi01 New Issue
05-02-06 20:00 tiwai Relationship added related to 0001890
05-02-06 20:01 tiwai File Added: vaio-master-sw-fix.diff
05-02-06 20:01 tiwai Note Added: 0009575
05-02-06 20:17 fdoffizi01 Note Added: 0009576
======================================================================
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
^ permalink raw reply
* Re: 2.6.17-rc1-mm3: time-i386-clocksource-drivers*.patch broke userspace apps
From: john stultz @ 2006-05-02 18:16 UTC (permalink / raw)
To: ak, Laurent Riffard
Cc: Kernel development list, OGAWA Hirofumi, Andrew Morton
In-Reply-To: <4454B4A1.4060304@free.fr>
On Sun, 2006-04-30 at 14:59 +0200, Laurent Riffard wrote:
> [root@antares ~]# grep clocksource dmesg-2.6.17-rc*
> dmesg-2.6.17-rc1-mm1:Time: tsc clocksource has been installed.
> dmesg-2.6.17-rc1-mm1:Time: acpi_pm clocksource has been installed.
> dmesg-2.6.17-rc1-mm2:Time: tsc clocksource has been installed.
> dmesg-2.6.17-rc1-mm2:Time: acpi_pm clocksource has been installed.
> dmesg-2.6.17-rc1-mm3:Time: tsc clocksource has been installed.
> dmesg-2.6.17-rc1-mm3:Time: pit clocksource has been installed.
> dmesg-2.6.17-rc2-mm1:Time: tsc clocksource has been installed.
> dmesg-2.6.17-rc2-mm1:Time: pit clocksource has been installed.
>
> Is pit clocksource broken ? If so, how can I get back acpi_pm
> clocksource ?
Sorry, I still don't have a patch for the PIT problems you're seeing,
but I did track down why the ACPI PM disappeared.
It looks like its from the patch:
i386-x86-64-fix-acpi-disabled-lapic-handling.patch
The second chunk adds:
+ if (!cpu_has_apic)
+ return -ENODEV;
+
Right before we probe for the ACPI PM timer.
Andi, is there some way we can move that to after the ACPI PM probe?
thanks
-john
^ permalink raw reply
* [PATCH] Libsepol test framework
From: Karl MacMillan @ 2006-05-02 18:13 UTC (permalink / raw)
To: selinux; +Cc: selinux-dev
[-- Attachment #1: Type: text/plain, Size: 1418 bytes --]
Steve,
Attached are two patches to add a simple test framework to libsepol and,
in the future, to the other libraries. It depends CUnit
(http://cunit.sourceforge.net/), a workable if not exciting unit testing
framework for C.
The compiler-cleanup patch is needed to make it easier for the unit
tests to load source policies. I think that using source policies for
unit testing libsepol will be more maintainable over the long run. It
also removes some code duplication between checkpolicy.c and
checkmodule.c.
The test-framework patch, which depends upon the computer-cleanup patch,
adds a simple test to libsepol and the makefile changes
to introduce a top-level make target "test". Example output from running
the test target is included below.
The test policy is in a separate email to you because it is large (a
complete base policy.conf from reference policy).
More patches with additional tests will be submitted over time.
Please apply.
Thanks,
Karl
--
Karl MacMillan
Tresys Technology
www.tresys.com
Test example:
./libsepol-tests
CUnit - A Unit testing framework for C - Version 2.1-0
http://cunit.sourceforge.net/
Suite: cond
Test: cond_expr_equal ... passed
--Run Summary: Type Total Ran Passed Failed
suites 1 1 n/a 0
tests 1 1 1 0
asserts 19044 19044 19044 0
[-- Attachment #2: selinux-user-compiler-cleanup-20060502.patch --]
[-- Type: text/x-patch, Size: 11503 bytes --]
diff -ruN --exclude=.svn ../../trunk/checkpolicy/checkmodule.c checkpolicy/checkmodule.c
--- ../../trunk/checkpolicy/checkmodule.c 2006-05-01 13:16:06.000000000 -0400
+++ checkpolicy/checkmodule.c 2006-05-01 12:48:41.000000000 -0400
@@ -30,24 +30,15 @@
#include "queue.h"
#include "checkpolicy.h"
+#include "parse_util.h"
extern char *optarg;
extern int optind;
static sidtab_t sidtab;
-extern policydb_t *policydbp;
-extern queue_t id_queue;
-extern unsigned int policydb_errors;
-extern unsigned long policydb_lineno;
-extern char source_file[];
extern int mlspol;
-extern FILE *yyin;
-extern void init_parser(int);
-extern int yyparse(void);
-extern void yyrestart(FILE *);
-
static char *txtfile = "policy.conf";
static char *binfile = "policy";
@@ -109,50 +100,6 @@
return 0;
}
-static int read_source_policy(policydb_t *p, char *file, char *progname)
-{
- yyin = fopen(file, "r");
- if (!yyin) {
- fprintf(stderr, "%s: unable to open %s\n", progname,
- file);
- return -1;
- }
-
- if (policydb_init(p) ||
- ((id_queue = queue_create()) == NULL)) {
- fprintf(stderr, "%s: out of memory!\n", progname);
- return -1;
- }
-
- p->policy_type = policy_type;
- p->mls = mlspol;
-
- init_parser(1);
- if (yyparse() || policydb_errors) {
- fprintf(stderr, "%s: error(s) encountered while parsing configuration\n", progname);
- return -1;
- }
- rewind(yyin);
- init_parser(2);
- source_file[0] = '\0';
- yyrestart(yyin);
- if (yyparse() || policydb_errors) {
- fprintf(stderr, "%s: error(s) encountered while parsing configuration\n", progname);
- return -1;
- }
- queue_destroy(id_queue);
-
- if (hierarchy_check_constraints(NULL, p)) {
- return -1;
- }
-
- if (policydb_errors)
- return -1;
-
- fclose(yyin);
- return 0;
-}
-
static int write_binary_policy(policydb_t *p, char *file, char *progname)
{
FILE *outfp = NULL;
@@ -253,18 +200,29 @@
sepol_set_policydb(&modpolicydb);
sepol_set_sidtab(&sidtab);
- policydbp = &modpolicydb;
if (binary) {
- if (read_binary_policy(policydbp, file, argv[0]) == -1) {
+ if (read_binary_policy(&modpolicydb, file, argv[0]) == -1) {
exit(1);
}
} else {
- if (read_source_policy(policydbp, file, argv[0]) == -1) {
+ if (policydb_init(&modpolicydb)) {
+ fprintf(stderr, "%s: out of memory!\n", argv[0]);
+ return -1;
+ }
+
+ modpolicydb.policy_type = policy_type;
+ modpolicydb.mls = mlspol;
+
+ if (read_source_policy(&modpolicydb, file, argv[0]) == -1) {
exit(1);
}
+
+ if (hierarchy_check_constraints(NULL, &modpolicydb)) {
+ return -1;
+ }
}
- if (policydbp->policy_type == POLICY_BASE) {
+ if (modpolicydb.policy_type == POLICY_BASE) {
/* Verify that we can successfully expand the base module. */
policydb_t kernpolicydb;
@@ -272,24 +230,24 @@
fprintf(stderr, "%s: policydb_init failed\n", argv[0]);
exit(1);
}
- if (link_modules(NULL, policydbp, NULL, 0, 0)) {
+ if (link_modules(NULL, &modpolicydb, NULL, 0, 0)) {
fprintf(stderr, "%s: link modules failed\n", argv[0]);
exit(1);
}
- if (expand_module(NULL, policydbp, &kernpolicydb, 0, 1)) {
+ if (expand_module(NULL, &modpolicydb, &kernpolicydb, 0, 1)) {
fprintf(stderr, "%s: expand module failed\n", argv[0]);
exit(1);
}
policydb_destroy(&kernpolicydb);
}
- if (policydb_load_isids(policydbp, &sidtab))
+ if (policydb_load_isids(&modpolicydb, &sidtab))
exit(1);
printf("%s: policy configuration loaded\n", argv[0]);
if (outfile &&
- write_binary_policy(policydbp, outfile, argv[0]) == -1) {
+ write_binary_policy(&modpolicydb, outfile, argv[0]) == -1) {
exit(1);
}
return 0;
diff -ruN --exclude=.svn ../../trunk/checkpolicy/checkpolicy.c checkpolicy/checkpolicy.c
--- ../../trunk/checkpolicy/checkpolicy.c 2006-05-01 13:16:06.000000000 -0400
+++ checkpolicy/checkpolicy.c 2006-05-01 12:51:53.000000000 -0400
@@ -80,6 +80,7 @@
#include "queue.h"
#include "checkpolicy.h"
+#include "parse_util.h"
extern char *optarg;
extern int optind;
@@ -88,17 +89,8 @@
static sidtab_t sidtab;
extern policydb_t *policydbp;
-extern queue_t id_queue;
-extern unsigned int policydb_errors;
-extern unsigned long policydb_lineno;
-extern char source_file[];
extern int mlspol;
-extern FILE *yyin;
-extern void init_parser(int);
-extern int yyparse(void);
-extern void yyrestart(FILE *);
-
static char *txtfile = "policy.conf";
static char *binfile = "policy";
@@ -498,13 +490,6 @@
} else {
policydb_t parse_policy;
- yyin = fopen(file, "r");
- if (!yyin) {
- fprintf(stderr, "%s: unable to open %s\n", argv[0],
- file);
- exit(1);
- }
-
if (policydb_init(&parse_policy))
exit(1);
/* We build this as a base policy first since that is all the parser understands */
@@ -513,28 +498,9 @@
/* Let sepol know if we are dealing with MLS support */
parse_policy.mls = mlspol;
- id_queue = queue_create();
- if (!id_queue) {
- fprintf(stderr, "%s: out of memory\n", argv[0]);
- exit(1);
- }
policydbp = &parse_policy;
- init_parser(1);
- if (yyparse() || policydb_errors) {
- fprintf(stderr, "%s: error(s) encountered while parsing configuration\n", argv[0]);
- exit(1);
- }
- rewind(yyin);
- init_parser(2);
- source_file[0] = '\0';
- yyrestart(yyin);
- if (yyparse() || policydb_errors) {
- fprintf(stderr, "%s: error(s) encountered while parsing configuration\n", argv[0]);
- exit(1);
- }
- queue_destroy(id_queue);
- if (policydb_errors)
+ if (read_source_policy(policydbp, file, "checkpolicy") < 0)
exit(1);
if (hashtab_map(policydbp->p_levels.table, check_level, NULL))
@@ -557,7 +523,6 @@
}
policydb_destroy(&parse_policy);
policydbp = &policydb;
- fclose(yyin);
}
if (policydb_load_isids(&policydb, &sidtab))
diff -ruN --exclude=.svn ../../trunk/checkpolicy/Makefile checkpolicy/Makefile
--- ../../trunk/checkpolicy/Makefile 2006-05-01 13:16:06.000000000 -0400
+++ checkpolicy/Makefile 2006-05-01 10:41:50.000000000 -0400
@@ -12,7 +12,7 @@
override CFLAGS += -I. -I${INCLUDEDIR}
-CHECKOBJS = y.tab.o lex.yy.o queue.o module_compiler.o
+CHECKOBJS = y.tab.o lex.yy.o queue.o module_compiler.o parse_util.o
CHECKPOLOBJS = $(CHECKOBJS) checkpolicy.o
CHECKMODOBJS = $(CHECKOBJS) checkmodule.o
diff -ruN --exclude=.svn ../../trunk/checkpolicy/parse_util.c checkpolicy/parse_util.c
--- ../../trunk/checkpolicy/parse_util.c 1969-12-31 19:00:00.000000000 -0500
+++ checkpolicy/parse_util.c 2006-05-01 12:52:24.000000000 -0400
@@ -0,0 +1,74 @@
+/*
+ * Author: Karl MacMillan <kmacmillan@tresys.com>
+ *
+ * Copyright (C) 2006 Tresys Technology, LLC
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "parse_util.h"
+#include "queue.h"
+
+/* these are defined in policy_parse.y and are needed for read_source_policy */
+extern FILE *yyin;
+extern void init_parser(int);
+extern int yyparse(void);
+extern void yyrestart(FILE *);
+extern queue_t id_queue;
+extern unsigned int policydb_errors;
+extern unsigned long policydb_lineno;
+extern char source_file[];
+extern policydb_t *policydbp;
+extern int mlspol;
+
+int read_source_policy(policydb_t *p, char *file, char *progname)
+{
+ yyin = fopen(file, "r");
+ if (!yyin) {
+ fprintf(stderr, "%s: unable to open %s\n", progname,
+ file);
+ return -1;
+ }
+
+ if ((id_queue = queue_create()) == NULL) {
+ fprintf(stderr, "%s: out of memory!\n", progname);
+ return -1;
+ }
+
+ policydbp = p;
+ mlspol = p->mls;
+
+ init_parser(1);
+ if (yyparse() || policydb_errors) {
+ fprintf(stderr, "%s: error(s) encountered while parsing configuration\n", progname);
+ return -1;
+ }
+ rewind(yyin);
+ init_parser(2);
+ source_file[0] = '\0';
+ yyrestart(yyin);
+ if (yyparse() || policydb_errors) {
+ fprintf(stderr, "%s: error(s) encountered while parsing configuration\n", progname);
+ return -1;
+ }
+ queue_destroy(id_queue);
+
+ if (policydb_errors)
+ return -1;
+
+ fclose(yyin);
+
+ return 0;
+}
diff -ruN --exclude=.svn ../../trunk/checkpolicy/parse_util.h checkpolicy/parse_util.h
--- ../../trunk/checkpolicy/parse_util.h 1969-12-31 19:00:00.000000000 -0500
+++ checkpolicy/parse_util.h 2006-05-01 10:42:13.000000000 -0400
@@ -0,0 +1,35 @@
+/*
+ * Author: Karl MacMillan <kmacmillan@tresys.com>
+ *
+ * Copyright (C) 2006 Tresys Technology, LLC
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/* Utility functions shared by checkpolicy and checkmodule */
+
+#ifndef __PARSE_UTIL_H__
+#define __PARSE_UTIL_H__
+
+#include <sepol/policydb/policydb.h>
+
+/* Read a source policy and populate the policydb passed in. The
+ * policydb must already have been created and configured (e.g.,
+ * expected policy type set. The string progname is used for
+ * error messages. No checking of assertions, hierarchy, etc.
+ * is done. */
+int read_source_policy(policydb_t *p, char *file, char *progname);
+
+#endif
[-- Attachment #3: selinux-user-test-framework-20060502.patch --]
[-- Type: text/x-patch, Size: 10930 bytes --]
diff --exclude=.svn -ruN --exclude=checkpolicy --exclude=refpolicy-base.conf ../../trunk/libselinux/Makefile ./libselinux/Makefile
--- ../../trunk/libselinux/Makefile 2006-05-01 13:16:07.000000000 -0400
+++ ./libselinux/Makefile 2006-05-02 09:10:12.000000000 -0400
@@ -21,3 +21,4 @@
$(MAKE) -C src $@
$(MAKE) -C utils clean
+test:
\ No newline at end of file
diff --exclude=.svn -ruN --exclude=checkpolicy --exclude=refpolicy-base.conf ../../trunk/libsemanage/Makefile ./libsemanage/Makefile
--- ../../trunk/libsemanage/Makefile 2006-05-01 13:16:04.000000000 -0400
+++ ./libsemanage/Makefile 2006-05-02 09:11:25.000000000 -0400
@@ -18,3 +18,4 @@
clean distclean:
$(MAKE) -C src $@
+test:
\ No newline at end of file
diff --exclude=.svn -ruN --exclude=checkpolicy --exclude=refpolicy-base.conf ../../trunk/libsepol/include/sepol/policydb/conditional.h ./libsepol/include/sepol/policydb/conditional.h
--- ../../trunk/libsepol/include/sepol/policydb/conditional.h 2006-05-01 13:16:04.000000000 -0400
+++ ./libsepol/include/sepol/policydb/conditional.h 2006-05-02 08:50:52.000000000 -0400
@@ -91,6 +91,7 @@
extern int cond_evaluate_expr(policydb_t *p, cond_expr_t *expr);
extern cond_expr_t *cond_copy_expr(cond_expr_t *expr);
+extern int cond_expr_equal(cond_node_t *a, cond_node_t *b);
extern int cond_normalize_expr(policydb_t *p, cond_node_t *cn);
extern void cond_node_destroy(cond_node_t *node);
extern void cond_expr_destroy(cond_expr_t *expr);
diff --exclude=.svn -ruN --exclude=checkpolicy --exclude=refpolicy-base.conf ../../trunk/libsepol/Makefile ./libsepol/Makefile
--- ../../trunk/libsepol/Makefile 2006-05-01 13:16:05.000000000 -0400
+++ ./libsepol/Makefile 2006-05-02 09:13:38.000000000 -0400
@@ -1,6 +1,7 @@
all:
$(MAKE) -C src
$(MAKE) -C utils
+ $(MAKE) -C tests
install:
$(MAKE) -C include install
@@ -14,4 +15,8 @@
clean:
$(MAKE) -C src clean
$(MAKE) -C utils clean
+ $(MAKE) -C tests clean
+
+test:
+ $(MAKE) -C tests test
diff --exclude=.svn -ruN --exclude=checkpolicy --exclude=refpolicy-base.conf ../../trunk/libsepol/src/conditional.c ./libsepol/src/conditional.c
--- ../../trunk/libsepol/src/conditional.c 2006-05-01 13:16:05.000000000 -0400
+++ ./libsepol/src/conditional.c 2006-05-02 08:50:56.000000000 -0400
@@ -86,7 +86,7 @@
/*
* Determine if two conditional expressions are equal.
*/
-static int cond_expr_equal(cond_node_t *a, cond_node_t *b)
+int cond_expr_equal(cond_node_t *a, cond_node_t *b)
{
cond_expr_t *cur_a, *cur_b;
diff --exclude=.svn -ruN --exclude=checkpolicy --exclude=refpolicy-base.conf ../../trunk/libsepol/tests/libsepol-tests.c ./libsepol/tests/libsepol-tests.c
--- ../../trunk/libsepol/tests/libsepol-tests.c 1969-12-31 19:00:00.000000000 -0500
+++ ./libsepol/tests/libsepol-tests.c 2006-05-02 09:07:22.000000000 -0400
@@ -0,0 +1,49 @@
+/*
+ * Author: Karl MacMillan <kmacmillan@tresys.com>
+ *
+ * Copyright (C) 2006 Tresys Technology, LLC
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "test-cond.h"
+
+#include <CUnit/Basic.h>
+#include <stdio.h>
+
+
+int main(int argc, char **argv)
+{
+ CU_pSuite suite = NULL;
+
+ if (CUE_SUCCESS != CU_initialize_registry())
+ return CU_get_error();
+
+ suite = CU_add_suite("cond", cond_test_init, cond_test_cleanup);
+ if (NULL == suite) {
+ CU_cleanup_registry();
+ return CU_get_error();
+ }
+
+ if (cond_add_tests(suite)) {
+ CU_cleanup_registry();
+ return CU_get_error();
+ }
+
+ CU_basic_set_mode(CU_BRM_VERBOSE);
+ CU_basic_run_tests();
+ CU_cleanup_registry();
+ return CU_get_error();
+}
diff --exclude=.svn -ruN --exclude=checkpolicy --exclude=refpolicy-base.conf ../../trunk/libsepol/tests/Makefile ./libsepol/tests/Makefile
--- ../../trunk/libsepol/tests/Makefile 1969-12-31 19:00:00.000000000 -0500
+++ ./libsepol/tests/Makefile 2006-05-02 09:10:35.000000000 -0400
@@ -0,0 +1,28 @@
+# Statically link libsepol on the assumption that we are going to
+# be testing internal functions.
+LIBSEPOL = -L../src/ -static -lsepol
+
+# In order to load source policies we need to link in the checkpolicy/checkmodule parser and util code.
+# This is less than ideal, but it makes the tests easier to maintain by allowing source policies
+# to be loaded directly.
+CHECKPOLICY = ../../checkpolicy/
+PARSEROBJS = $(CHECKPOLICY)queue.o $(CHECKPOLICY)y.tab.o $(CHECKPOLICY)parse_util.o $(CHECKPOLICY)lex.yy.o \
+ $(CHECKPOLICY)module_compiler.o
+INCLUDE = -I../include/ -I$(CHECKPOLICY)
+
+OBJS= $(patsubst %.c,%.o,$(wildcard *.c))
+CFLAGS = -g -o0 -Wall -W -Wundef -Wmissing-noreturn -Wmissing-format-attribute -Wno-unused-parameter
+
+EXE = libsepol-tests
+
+all: $(OBJS)
+ $(CC) $(CFLAGS) $(INCLUDE) $(OBJS) $(PARSEROBJS) -lfl -lcunit -lcurses $(LIBSEPOL) -o $(EXE)
+
+%.o: %.c
+ $(CC) $(CFLAGS) $(INCLUDE) -c $*.c -o $*.o
+
+clean:
+ rm -rf $(OBJS) $(EXE)
+
+test: all
+ ./$(EXE)
diff --exclude=.svn -ruN --exclude=checkpolicy --exclude=refpolicy-base.conf ../../trunk/libsepol/tests/test-cond.c ./libsepol/tests/test-cond.c
--- ../../trunk/libsepol/tests/test-cond.c 1969-12-31 19:00:00.000000000 -0500
+++ ./libsepol/tests/test-cond.c 2006-05-02 09:16:35.000000000 -0400
@@ -0,0 +1,99 @@
+/*
+ * Author: Karl MacMillan <kmacmillan@tresys.com>
+ *
+ * Copyright (C) 2006 Tresys Technology, LLC
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+
+#include "test-cond.h"
+#include "parse_util.h"
+
+#include <sepol/policydb/policydb.h>
+#include <sepol/policydb/link.h>
+#include <sepol/policydb/expand.h>
+#include <sepol/policydb/conditional.h>
+
+static policydb_t basemod;
+static policydb_t base_expanded;
+
+int cond_test_init(void)
+{
+ if (policydb_init(&basemod)) {
+ fprintf(stderr, "out of memory!\n");
+ return -1;
+ }
+
+ if (policydb_init(&base_expanded)) {
+ fprintf(stderr, "out of memory!\n");
+ return -1;
+ }
+
+ basemod.policy_type = POLICY_BASE;
+ basemod.mls = 1;
+
+ if (read_source_policy(&basemod, "policies/refpolicy-base.conf",
+ "test-cond"))
+ return -1;
+
+ if (link_modules(NULL, &basemod, NULL, 0, 0)) {
+ fprintf(stderr, "link modules failed\n");
+ return -1;
+ }
+
+ if (expand_module(NULL, &basemod, &base_expanded, 0, 1)) {
+ fprintf(stderr, "expand module failed\n");
+ return -1;
+ }
+
+ return 0;
+}
+
+int cond_test_cleanup(void)
+{
+ policydb_destroy(&basemod);
+ policydb_destroy(&base_expanded);
+
+ return 0;
+}
+
+static void test_cond_expr_equal(void)
+{
+ cond_node_t *a, *b;
+
+ a = base_expanded.cond_list;
+ while (a) {
+ b = base_expanded.cond_list;
+ while (b) {
+ if (a == b) {
+ CU_ASSERT(cond_expr_equal(a, b));
+ } else {
+ CU_ASSERT(cond_expr_equal(a, b) == 0);
+ }
+ b = b->next;
+ }
+ a = a->next;
+ }
+}
+
+int cond_add_tests(CU_pSuite suite)
+{
+ if (NULL == CU_add_test(suite, "cond_expr_equal", test_cond_expr_equal)) {
+ CU_cleanup_registry();
+ return CU_get_error();
+ }
+ return 0;
+}
diff --exclude=.svn -ruN --exclude=checkpolicy --exclude=refpolicy-base.conf ../../trunk/libsepol/tests/test-cond.h ./libsepol/tests/test-cond.h
--- ../../trunk/libsepol/tests/test-cond.h 1969-12-31 19:00:00.000000000 -0500
+++ ./libsepol/tests/test-cond.h 2006-05-02 09:07:22.000000000 -0400
@@ -0,0 +1,30 @@
+/*
+ * Author: Karl MacMillan <kmacmillan@tresys.com>
+ *
+ * Copyright (C) 2006 Tresys Technology, LLC
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef __TEST_COND_H__
+#define __TEST_COND_H__
+
+#include <CUnit/Basic.h>
+
+int cond_test_init(void);
+int cond_test_cleanup(void);
+int cond_add_tests(CU_pSuite suite);
+
+#endif
diff --exclude=.svn -ruN --exclude=checkpolicy --exclude=refpolicy-base.conf ../../trunk/Makefile ./Makefile
--- ../../trunk/Makefile 2006-05-01 13:16:07.000000000 -0400
+++ ./Makefile 2006-05-02 09:07:46.000000000 -0400
@@ -6,7 +6,7 @@
export LDFLAGS = -g
endif
-install relabel:
+install relabel:
@for subdir in $(SUBDIRS); do \
(cd $$subdir && $(MAKE) $@) || exit 1; \
done
@@ -20,3 +20,8 @@
@for subdir in $(SUBDIRS); do \
(cd $$subdir && $(MAKE) $@) || exit 1; \
done
+
+test:
+ @for subdir in $(SUBDIRS); do \
+ (cd $$subdir && $(MAKE) $@) || exit 1; \
+ done
diff --exclude=.svn -ruN --exclude=checkpolicy --exclude=refpolicy-base.conf ../../trunk/policycoreutils/Makefile ./policycoreutils/Makefile
--- ../../trunk/policycoreutils/Makefile 2006-05-01 13:16:05.000000000 -0400
+++ ./policycoreutils/Makefile 2006-05-02 09:50:09.000000000 -0400
@@ -5,3 +5,4 @@
(cd $$subdir && $(MAKE) $@) || exit 1; \
done
+test:
^ permalink raw reply
* Re: It is possible to install Windows XP with intel vt now ?
From: Michael Lessard @ 2006-05-02 18:15 UTC (permalink / raw)
To: Yu, Ping Y; +Cc: Xen-devel
In-Reply-To: <c5530b840605021050v107346dch7c9c53afc3aca26@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 192 bytes --]
I haved try with that :
disk= ['phy:/dev/sda6,ioemu:hda,w']
when i type : xm create -f xp.htm
Black sreen apear with some text
And i receive this message :
Fatal : Not a bootable disk
[-- Attachment #1.2: Type: text/html, Size: 295 bytes --]
[-- Attachment #2: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply
* Re: [autofs] [RFC] Multiple server selection and replicated mount failover
From: Jim Carter @ 2006-05-02 18:14 UTC (permalink / raw)
To: Ian Kent; +Cc: nfs, autofs mailing list
In-Reply-To: <Pine.LNX.4.64.0605021257500.3868@raven.themaw.net>
On Tue, 2 May 2006, Ian Kent wrote:
> For some time now I have had code in autofs that attempts to select an
> appropriate server from a weighted list to satisfy server priority
> selection and Replicated Server requirements. The code has been
> problematic from the beginning and is still incorrect largely due to me
> not merging the original patch well and also not fixing it correctly
> afterward.
>
> So I'd like to have this work properly and to do that I also need to
> consider read-only NFS mount fail over.
I'm glad to hear that there may be progress in server selection. But I'm
not sure if you're looking at the problem from the direction that I am.
First, I don't think it's necessary to replicate the original Sun
behavior exactly, although it would be helpful but not mandatory to
allow something in the automount maps that resembles Solaris syntax, to
ease user (sysop) training.
The current version of mount on Linux (util-linux-2.12) does not know
about picking servers from a list; at least the man page doesn't know.
This means that the whole job of server selection falls to automount. I
think that's the right way to design the system. However, that also
means that automount needs to know something about NFS servers
specifically. The less it knows, the better, in my opinion, so the
design of NFS mount options can be separated from automount.
Your task is to make an ordered list of servers, best to worst, and to
mount from the best one that answers. To my mind a concentration on
"groups" is confusing for the implementor and user, as well as requiring
inside knowledge so you can classify the servers. On the other hand,
the sysop does want to be able to use the same automount map on a
variety of machines (e.g. map served by NIS). So what discriminations
might be made?
Explicit preferences set by the sysop should be able to trump all other
discriminations -- or it should be possible to make them small enough to
be overridden by intrinsic differences. Let's specify that intrinsic
differences are 5 or 10 points, and the explicit preference could be set
to 30 to override, or 1 to subtly influence. For example, you could
give preferences of 0, 1 and 30 to designate a "last choice" server, and
two more preferred servers which would be picked on intrinsic grounds,
the first one being most preferred if all else is equal. (Low score
wins -- say that explicitly in the documentation.)
As for intrinsic differences, let's say that being on a different subnet
costs 10 points. That distinction is important. I'm not too sure what
the "same net" discrimination might mean. At my shop, if 128.97.4.x
(x.math.ucla.edu) is picking servers, then 128.97.70.x (x.math.ucla.edu)
is local, 128.97.12.x (x.pic.ucla.edu) is also local, but 128.97.31.x
(x.ess.ucla.edu) is a different department in another building. If we
have to make this discrimination, let's define it like this: let the
"length" be the number of bytes (including dots) in the client's (not
server's) canonical name. Starting from the end, count the number of
bytes that are equal in the two names. Then the penalty for the server
is 10*(1 - common/length). For example, if the client is
simba.math.ucla.edu and the server is tupelo.math.ucla.edu, length is
19, common is 14, and the penalty is 3 points (rounding up 2.6). It
would be 6 points for a server in PIC or ESS, which would be considered
equally bad.
I'd say to ignore server capabilities, e.g. NFSv4 versus NFSv2, because
that takes too much inside information -- you actually have to talk to
the server. If the client and server can negotiate to make the mount
happen, fine. If not, automount has to go to the next server. (And it
should remember that the back-version server didn't work out, for a
generous but non-infinite time like a few hours.)
NFSv4 has a nice behavior: if the client doesn't use a NFSv4 mount for a
configurable time (default 10 minutes), it will sync and give up its
filehandle, although I believe the client still claims that the
filesystem is mounted. On subsequent use it will [attempt to]
re-acquire the filehandle transparently. This means that if the server
crashes the filehandle will not be stale, although if the using program
wakes up before the server comes back, it will get an I/O error.
There's a lot of good stuff about NFSv4 on http://wiki.linux-nfs.org/ I got
NFSv4 working on SuSE 10.0 (kernel 2.6.13, nfs-utils-1.0.7) as a demo;
notes from this project (which need to be finished) are at
http://www.math.ucla.edu/~jimc/documents/nfsv4-0601.html
You asked where various steps should be implemented. Picking the server:
that's the job of the userspace daemon, and I don't see too much help that
the kernel might give. Readonly failover is another matter -- which I
think is important.
Here's a top of head kludge for failover: Autofs furnishes a synthetic
directory, let's call it /net/warez. The user daemon NFS mounts something
on it, example julia:/m1/warez. The user daemon mounts another
inter-layer, maybe FUSE, on top of the NFS, and client I/O operations go to
that filesystem. When the inter-layer starts getting I/O errors because
the NFS driver has decided that the server is dead, the inter-layer
notifies the automount daemon. It tells the kernel autofs driver to create
a temp name /net/xyz123, and it mounts a different server on it, let's say
sonia:/m2/warez. Then the names are renamed to, respectively, /net/xyz124
and /net/warez (the new one). Finally the automount daemon does a "bind"
or "move" mount to transfer the inter-layer to be mounted on the new
/net/warez. Then the I/O operation has to be re-tried on the new server.
Wrecked directories are cleaned up as circumstances allow.
I like the idea of minimal special case code in the kernel to support
failover. If it's even possible to do the "move" mount like I suggested.
James F. Carter Voice 310 825 2897 FAX 310 206 6673
UCLA-Mathnet; 6115 MSA; 405 Hilgard Ave.; Los Angeles, CA, USA 90095-1555
Email: jimc@math.ucla.edu http://www.math.ucla.edu/~jimc (q.v. for PGP key)
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
NFS maillist - NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs
^ permalink raw reply
* kernel: Oops: Assertion failed! qc != NULL,libata-core.c,ata_pio_error,line=3227
From: johng @ 2006-05-02 18:13 UTC (permalink / raw)
To: linux-kernel
The following Kernel Oops is a problem in 2.4.33-pre2, but
does not happen in 2.4.32.
I am willing to help test this, if a patch is available.
below is part of the /var/log/messages before the kernel
panic.
Apr 20 08:16:09 dhcp-wk45 smartd: smartd startup succeeded
***** Waited a couple of minutes, then pulled /dev/sdb out
of it's tray to disable it.
Apr 20 08:18:50 dhcp-wk45 kernel: ata2: command 0xec
timeout, stat 0xd0 host_stat 0x0
Apr 20 08:18:50 dhcp-wk45 kernel: ata2: translated ATA
stat/err 0xd0/00 to SCSI
SK/ASC/ASCQ 0xb/47/00
Apr 20 08:18:50 dhcp-wk45 kernel: ata2: status=0xd0 { Busy }
Apr 20 08:18:58 dhcp-wk45 kernel: ATA: abnormal status 0xD0
on port 0xE407
Apr 20 08:18:58 dhcp-wk45 last message repeated 2 times
Apr 20 08:19:08 dhcp-wk45 kernel: ata2: command 0xec
timeout, stat 0xd0 host_stat 0x0
Apr 20 08:19:08 dhcp-wk45 kernel: ata2: translated ATA
stat/err 0xd0/00 to SCSI
SK/ASC/ASCQ 0xb/47/00
Apr 20 08:19:08 dhcp-wk45 kernel: ata2: status=0xd0 { Busy }
Apr 20 08:19:28 dhcp-wk45 kernel: ata2: PIO error
Apr 20 08:19:28 dhcp-wk45 kernel: Assertion failed! qc !=
NULL,libata-core.c,ata_pio_error,line=3227
Apr 20 08:19:28 dhcp-wk45 kernel: Unable to handle kernel
NULL pointer dereference at virtual address 00000000
Apr 20 08:19:28 dhcp-wk45 kernel: printing eip:
Apr 20 08:19:28 dhcp-wk45 kernel: c0250edb
Apr 20 08:19:28 dhcp-wk45 kernel: *pde = 3679f001
Apr 20 08:19:28 dhcp-wk45 kernel: *pte = 00000000
Apr 20 08:19:28 dhcp-wk45 kernel: Oops: 0000
Apr 20 08:19:28 dhcp-wk45 kernel: CPU: 2
Apr 20 08:19:28 dhcp-wk45 kernel: EIP: 0010:[<c0250edb>]
Not tainted
Apr 20 08:19:28 dhcp-wk45 kernel: EFLAGS: 00010296
Apr 20 08:19:28 dhcp-wk45 kernel: eax: 00000001 ebx:
00000000 ecx: 00000001
edx: c036d320
Apr 20 08:19:28 dhcp-wk45 kernel: esi: c289487c edi:
00000000 ebp: 00000000
esp: f7fc3f44
Apr 20 08:19:28 dhcp-wk45 kernel: ds: 0018 es: 0018 ss:
0018
Apr 20 08:19:28 dhcp-wk45 kernel: Process keventd (pid: 2,
stackpage=f7fc3000)
Apr 20 08:19:28 dhcp-wk45 kernel: Process keventd (pid: 2,
stackpage=f7fc3000)
Apr 20 08:19:28 dhcp-wk45 kernel: Stack: 0000000a 00000400
c0342426 00000000 c289487c 00000000 f7fc2000 c0251938
Apr 20 08:19:28 dhcp-wk45 kernel: 00000000 00000004
c033b594 c033b701 00000c9b f7fc3f88 f7fc3f88 c0121b7a
Apr 20 08:19:28 dhcp-wk45 kernel: c289487c c2894e2c
c2894e2c 00000000 00000000 c012aea7 c036e594 f7fc3fb0
Apr 20 08:19:28 dhcp-wk45 kernel: Call Trace:
[<c0251938>] [<c0121b7a>] [<c012aea7>] [<c012ad70>]
[<c0105000>]
Apr 20 08:19:28 dhcp-wk45 kernel: [<c010747e>]
[<c012ad70>]
Apr 20 08:19:28 dhcp-wk45 kernel:
Apr 20 08:19:28 dhcp-wk45 kernel: Code: 8b 75 00 9c 5f fa 8b
86 98 05 00 00 f0 fe 08 0f 88 bc 25 00
Apr 20 08:20:08 dhcp-wk45 shutdown: shutting down for system
reboot
Apr 20 08:20:08 dhcp-wk45 init: Switching to runlevel: 6
^ permalink raw reply
* FW: USB on MPC8349EMDS
From: Prashant Viswanathan @ 2006-05-02 17:57 UTC (permalink / raw)
To: linuxppc-embedded
Hi,
I have linux kernel (2.6.11) from Freescale running on the MPC8349EMDS.
I am using the BSP from Freescale which is supposed to have USB support.
However, I seem to be having problems with USB host support.
When I insert a USB Mass storage device (thumb drive), I get the
following errors
/ # usb 1-2: new high speed USB device using fsl-usb2-mph and address 8
usb 1-2: khubd timed out on ep0in
usb 1-2: new high speed USB device using fsl-usb2-mph and address 9
usb 1-2: khubd timed out on ep0in
It does not show up in /proc/bus/usb/devices (I do have usbfs mounted).
I also have usb-utils installed and lsusb fails to list the device.
I have also tried other USB devices and get similar errors.
Has anybody else experience similar problems? Any pointers/help will be
appreciated.
Thanks,
Prashant
^ permalink raw reply
* RE: We are attempting once again to split policy out intoindividual RPMS.
From: Joshua Brindle @ 2006-05-02 18:06 UTC (permalink / raw)
To: Stephen Smalley, Jeremy Katz
Cc: Daniel J Walsh, James Morris, selinux-dev, SE Linux, Paul Nasrat,
James Antill
> From: Stephen Smalley [mailto:sds@tycho.nsa.gov]
>
> On Tue, 2006-05-02 at 12:26 -0400, Stephen Smalley wrote:
> > Ok, let's assume that we implement kernel mechanism for
> > revalidating/updating the incore inode SIDs upon policy
> reload. But
> > where does this leave us with regard to being able to meaningfully
> > confine rpm in the future, e.g. by moving the real
> processing into a
> > helper and running it in different domains based on package
> > trustworthiness and purpose? If rpm (and potentially other
> programs,
> > as this becomes a tempting way to deal with e.g.
> dump/restore) can set
> > down arbitrary values as file contexts, then can they be
> meaningfully
> > restricted in any way? To me that is the larger concern.
>
> Ok, it has been pointed out to me that rpm and friends can
> still be meaningfully restricted if:
> a) we still apply the usual checking on setxattr() when the
> context is valid under the policy (thereby preventing rpm
> from setting to a context that is known but not accessible to
> it under the policy), and just use unlabeled_t as the target
> context when the context is not known under the policy and
> the process has some new privilege for setting unknown
> contexts (so the privilege no longer confers completely
> arbitrary values),
That is fine...
> b) we apply fine-grained access control over the policy
> modules being loaded by rpm so that it cannot add types with
> arbitrary permissions to the policy (so that it cannot gain
> access to something it should not via the previously unknown
> types it is introducing), which is necessary anyway for
> confinement of rpm and should be addressed via the policy server.
>
I strongly disagree with this. Not because rpm (or whatever) can subvert
the policy directly by making a new type and installing a policy that
can subvert policy. Although this is an issue because one can't
necessarilly map file types to domains with privileges, it can possibly
be controlled by policy server (assuming there are some pretty strict
metapolicy rules around).
A bigger issue (assuming we can control the former) is that an untrusted
rpm can label a file with the expectation that it will be active later.
Eg., label a malicious file passwd_exec_t before the passwd module is
installed. Wait for the passwd module to be installed (by a more trusted
RPM that has the policy rights to insert it) and viola, you have a rogue
binary that can enter passwd_t and modify shadow_t.
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
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.