* Re: [(repost) git Patch 1/1] avoid IRQ0 ioapic pin collision
From: Eric W. Biederman @ 2006-05-02 8:33 UTC (permalink / raw)
To: Brown, Len
Cc: Protasevich, Natalie, Andi Kleen, sergio, Kimball Murray,
linux-kernel, akpm, kmurray, linux-acpi
In-Reply-To: <CFF307C98FEABE47A452B27C06B85BB652DF16@hdsmsx411.amr.corp.intel.com>
"Brown, Len" <len.brown@intel.com> writes:
>>IRQ is an interrupt request, from a device.
>>Currently they can come in over a pin, or over a packet.
>>IRQs at the source can be shared.
>
> Well stated.
>
>>For an IRQ number it is just an enumeration of interrupt sources.
>>Ideally in a stable manner so that the assigned number does not
>>depend on compile options, or which version of the kernel you
>>are running.
>
> While desirable, the "stable" part is not guaranteed.
> On an ACPI system with PCI Interrupt Link devices,
> request_irq() goes into the pci-enable-device path,
> which ends up asking ACPI what interrupt pin this device uses.
> But the pin is programmable, so we pick one from the list
> of possible, program the router accordingly, and this is what
> gets returned to request_irq(). ACPI PCI Interrupt Link Devices,
> of course, are just a wrapper for what x86 legacy calls PIRQ routers.
>
> In practice, if you boot the same or similar kernel on the
> same configuration, you get 'stable', but if something changes
> such as enabling/disabling a device or loading an additional device
> driver
> or otherwise tinkering with probe order, then all bets are off,
> since the sequence of selecting and
> balancing possible device interrupt lines between available IRQs has
> changed.
Agreed in the general case there is nothing we can do. But
with a reasonable degree of stability things will stay put
long enough for people to reason about them.
Although I would actually expect us to use the normal twiddle of
irq lines on a bus. But if we can have less contention that is certainly
better.
>>The global irq_desc array is the core of any definition.
>>That is how linux knows about irqs. Beyond that we ideally
>>have stable numbers across reboots, and recompiles, and hardware
>>addition and removal. Stable numbers are not really possible
>>but we can come quite close.
>
> Okay, I'm good with irq_desc, Linux's generic IRQ definition,
> being the center of the universe. I'm also good with the index
> into irq_desc[] being the "IRQ number" show in /proc/interrupts.
> I guess I was thinking from a HW-specific point of view this
> afternoon...
I had to stare at the code for a while to see this as well.
> I don't like vector numbers being exposed in /proc/interrupts
> on x86. On an ACPI-enabled system, I think that they should be
> the GSI. This is consistent with the 0-15 legacy definitions
> being pin numbers (which I think we must keep), and consistent
> with the 16-n numbers being IOAPIC pin numbers (+offset),
> (which I think we should have kept).
Agreed.
> Of course, to do this simply, we'd have to select the irq_desc[i]
> with i = gsi, and not i = vector.
Exactly.
>>> We should never have had a problem with un-connected interrupt lines
>>> consuming vectors, as the vectors are handed out at run-time
>>> only when interrupts are requested by drivers.
>>
>>Incorrect. By being requested by drivers I assume you mean by
>>request_irq. assign_irq_vector is called long before request_irq
>>and in fact there is currently not a call from request_irq to
>>assign_irq_vector. Look where assign_irq_vector is called in io_apic.c
>
> You are right. This code is wrong.
> It makes absolutely no sense to reserve vectors in advance
> for every RTE in the IOAPIC when we don't even know if they
> are going to be used.
>
> This is clearly a holdover from the early IOAPIC/MPS days
> when we were talking about 4 to 8 non-legacy RTEs.
>
> This is where the big system vector shortage problem
> should be addressed.
Yes. Natalie mentioned that there are some IBM systems
that still run out of processor vectors with our current
irq collapsing.
>>I think there is a legitimate case for legacy edge triggered
>>interrupts to request a vector sooner, as there are so many races in
>>the enable/disable paths.
>
> I don't follow you on this part.
For edge triggered legacy irqs coming off the i8259 it probably makes
sense to assign them vectors early like we do currently.
I believe although I am not certain that with edge triggered irqs
actually disabling them makes it easy to miss edges.
>>
>>> The problem with this workaround is going to be choose a policy
>>> of where to direct what, and how to move things if interrupts
>>> become un-balanced.
>>
>>The directing problem already exists. In general an I/O apic can
>>only direct an irq at a specific cpu, and linux already supports
>>cpusets on which an irq may be delivered.
>>
>>But yes on systems with 8 or fewer cpus the I/O apics can do the
>>directing themselves and it is likely we still want to handle that
>>case.
>
> I don't think it is important to optimize for <= 8 CPUs
> having hundreds of unique interrupts. Systems with huge
> numbers of interrutps will have more than 8 CPUs. If they
> don't, then the should function, but being optimal isn't
> what the administrator had in mind. With multiple cores
> being added to systems, this becomes even more true
> over time.
Sorry. To be clear for systems with <= 8 CPUs we need to allocate
a common vector for all 8 cpus at once if we want to use
flat mode and this makes a version of assign_irq_vector that can work
assign per cpu vectors more complicated, since it has to handle both
cases. Hmm, should assign_irq_vector become a ioapic method?
I don't think we want to loose the optimization of letting the
hardware select select the cpu on small systems.
>>It is reassuring to see that the way I want to make the code work tends
>>to be they way you already think the code works. I can't be too far
>>off in reducing the complexity.
>
> Yeah, thanks for pointing out that the vectors are assigned at
> IOAPIC init-time. I hadn't noticed that, and it needs to be addressed.
Exactly. Once that is fixed setting gsi == irq should be trivial.
Then we only have to worry about big systems that actually use
more than 244 IRQs. Which is where the per cpu vector assignment
comes in.
Eric
^ permalink raw reply
* Re: [PATCH] built-in "git grep" (git grip).
From: Andreas Ericsson @ 2006-05-02 8:33 UTC (permalink / raw)
To: Jakub Narebski; +Cc: git
In-Reply-To: <e34cb4$is1$1@sea.gmane.org>
Jakub Narebski wrote:
> Junio C Hamano wrote:
>
> Jakub Narebski <jnareb@gmail.com> writes:
>
>
>>Wouldn't "git ggrep" (from git-aware grep) or "git bgrep" (from built-in
>>grep), similar to the egrep and fgrep from the grep package?
>
>
> Yes, I understand, but I just don't like using 'grip'. And it would be nice
> to have some convention for further not-ready-yet built-in replacements for
> script versions of commands, for example adding letter 'b' as 'built-in' at
> the beginning of command name: 'bgrep', 'bdiff'. Or use postfix 'n' or
> '-ng' to denote transitionary not-ready-yet new version of command:
> 'grepn', 'diffn' or 'grep-ng', 'diff-ng'.
>
Forcing the user to remember what's implemented as built-ins is not a
good idea. It was for that exact reason the "git-<command>-script" were
all renamed "git-<command>" once upon a time.
"git grip" work just fine for me, since it's only intended for testing
and performance improvements so far. I also think it's clearer for
end-users looking for a grep command if they're not faced with
fgrep/egrep/ggrep/bgrep alongside plain "grep".
--
Andreas Ericsson andreas.ericsson@op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
^ permalink raw reply
* Re: [PATCH] built-in "git grep" (git grip).
From: Jakub Narebski @ 2006-05-02 8:44 UTC (permalink / raw)
To: git
In-Reply-To: <44571967.7080807@op5.se>
Andreas Ericsson wrote:
> Jakub Narebski wrote:
>> Yes, I understand, but I just don't like using 'grip'. And it would be
>> nice to have some convention for further not-ready-yet built-in
>> replacements for script versions of commands, for example adding letter
>> 'b' as 'built-in' at the beginning of command name: 'bgrep', 'bdiff'. Or
>> use postfix 'n' or '-ng' to denote transitionary not-ready-yet new
>> version of command: 'grepn', 'diffn' or 'grep-ng', 'diff-ng'.
>>
>
> Forcing the user to remember what's implemented as built-ins is not a
> good idea. It was for that exact reason the "git-<command>-script" were
> all renamed "git-<command>" once upon a time.
>
> "git grip" work just fine for me, since it's only intended for testing
> and performance improvements so far. I also think it's clearer for
> end-users looking for a grep command if they're not faced with
> fgrep/egrep/ggrep/bgrep alongside plain "grep".
Well, scratch 'bgrep' idea, even if I had no intend for 'bgrep' to be
persistent name; it was meant as transitionary name. Well, that doesn't
matter much because someone interested in testing new, not-ready-yet
versions of commands (I like 'grepn' idea) usually would follow git
development, and would know (or not) about new version of 'git grep' being
'git grip' (and not 'git grepn').
What about forcing using external grep, and the fact that grep is linked
with libpcre?
--
Jakub Narebski
Warsaw, Poland
^ permalink raw reply
* [U-Boot-Users] Why doesn't "lds" file have effect on the ".text" section in the object file?
From: Min Chen @ 2006-05-02 8:46 UTC (permalink / raw)
To: u-boot
u-boot-usersHello everybody,
My question is about GNU linker scripts and has something to do with the ARM image. The addresses specified in the linker scripts file with an "lds" extension are exactly the addresses in ram for output sections in the object file to be copied to ram from flash(or rom), right? But the fact is, after decompiling the object file, I saw the ".text" section has a start address specified by TEXT_BASE in /board/xsbase255/config.mk(xsbase255 is my board name) rather than ". = 0x00000000" in /board/xsbase255/u-boot.lds.
Why doesn't "lds" file have effect on the ".text" section in the object file?
Thanks.
^ permalink raw reply
* Re: [PATCH] s390: Hypervisor File System
From: Kyle Moffett @ 2006-05-02 8:48 UTC (permalink / raw)
To: Greg KH
Cc: Michael Holzheu, akpm, schwidefsky, penberg, ioe-lkml, joern,
linux-kernel
In-Reply-To: <20060502040053.GA14413@kroah.com>
On May 2, 2006, at 00:00:53, Greg KH wrote:
> On Mon, May 01, 2006 at 07:29:23PM -0400, Kyle Moffett wrote:
>> So my question stands: What is the _recommended_ way to handle
>> simple data types in low-bandwidth/frequency multiple-valued
>> transactions to hardware? Examples include reading/modifying
>> framebuffer settings (currently done through IOCTLS), s390 current
>> state (up for discussion), etc. In these cases there needs to be
>> an atomic snapshot or write of multiple values at the same time.
>> Given the situation it would be _nice_ to use sysfs so the admin
>> can do it by hand; makes things shell scriptable and reduces the
>> number of binary compatibility issues.
>
> I really don't know of a way to use sysfs for this currently, and
> hence, am not complaining too much about the different /proc files
> that have this kind of information in it at the moment.
>
> If you or someone else wants to come up with some kind of solution
> for it, I'm sure that many people would be very happy to see it.
Hmm, ok; I'll see what I can come up with. Would anybody object to
this kind of API (as in my previous email) that uses an open fd as a
transaction "handle"?
Example script:
> ## Associate this process with an atomic snapshot
> ## of the /sys/hypervisor/s390 filesystem tree.
> exec 3>/sys/hypervisor/s390/transaction
>
> ## Read data from /sys/hypervisor/s390 without
> ## worrying about atomicity; as that's guaranteed
> ## by the open FD 3.
> ls /sys/hypervisor/s390/cpus
> cat /sys/hypervisor/s390/some_data_file
>
> ## Create another reference in this process to the
> ## _same_ atomic snapshot
> exec 4>&3
>
> ## Does *not* close out the atomic snapshot
> exec 3>&-
>
> ## Yet another ref; still the _same_ snapshot
> exec 6>/sys/hypervisor/s390/transaction
> exec 4>&-
>
> ## Regardless of what has changed in the meantime,
> ## our filesystem tree still looks the same
> ls /sys/hypervisor/s390/cpus
>
> ## Write out values
> echo some_state >/sys/hypervisor/s390/statefile
>
> ## Decide we don't like the changes and abort
> echo reset >&6
>
> ## Release the last copy of the snapshot and
> ## commit modified values
> exec 6>&-
This would allow usages like the following:
> exec 3>/sys/hypervisor/s390/transaction
> /bin/s390_change_hypervisor_state
> ## Look at new state; decide if we like it or not
> if [ -z "$I_LIKE_THE_STATE" ]; then
> echo reset >&3
> fi
> exec 3>&-
For actually implementing this; I'm considering a design which hangs
a transaction off of a "struct file" such that fork() and clone()
preserve the same transaction. When a new process obtains an FD with
the given transaction it would add that process' current pointer to a
hash-table referencing the transaction data structure so that the open
() call could look up the transaction for a given task in the hash
table and use the data specified in the transaction. When a
transaction is opened it would read the data atomically from the
hardware or in-kernel data structures and store an "initial" copy as
well as a "current" copy in per-transaction memory. As a user could
theoretically pin NPROC * size_of_transaction_data * 2 of kernel
memory, transaction files should have fairly strict file modes or
some sort of resource-accounting semantic. On a "reset" operation
the "initial" copy would be used to overwrite the "current" copy
again, and a changed bit would be unset. Changes would result in the
changed bit being set. When the transaction is closed, if the
changed bit is set then the data would be committed atomically, then
all the memory would be freed and the transaction removed from the
hash table.
Anything that sounds broken/fishy/"No that's impossible because..."
in there? I appreciate your input; if this sounds feasable I'll try
to hack up a patch.
Cheers,
Kyle Moffett
^ permalink raw reply
* Re: [PATCH 7/7] uts namespaces: Implement CLONE_NEWUTS flag
From: Eric W. Biederman @ 2006-05-02 8:48 UTC (permalink / raw)
To: Andi Kleen
Cc: Serge E. Hallyn, herbert, dev, linux-kernel, sam, xemul, haveblue,
clg, frankeh
In-Reply-To: <200605021017.19897.ak@suse.de>
Andi Kleen <ak@suse.de> writes:
> On Tuesday 02 May 2006 10:03, Eric W. Biederman wrote:
>> Andi Kleen <ak@suse.de> writes:
>>
>> > "Serge E. Hallyn" <serue@us.ibm.com> writes:
>> >
>> >> Implement a CLONE_NEWUTS flag, and use it at clone and sys_unshare.
>> >
>> > I still think it's a design mistake to add zillions of pointers to
> task_struct
>> > for every possible kernel object. Going through a proxy datastructure to
>> > merge common cases would be much better.
>>
>> The design point is not every kernel object. The target is one
>> per namespace. Or more usefully one per logical chunk of the kernel.
>
> Which are likely tens or even hundreds if you go through all the source.
> Even tens would bloat task_struct far too much.
We don't have that many places where we put global names in
the linux api. Yes there are several and it is painful,
but we are nowhere near as high as you expect.
>> The UTS namespace is by far the smallest of these pieces.
>>
>> The kernel networking stack is probably the largest.
>>
>> At last count there were about 7 of these, enough so that the few
>> remaining clone bits would be sufficient.
>
> 7 additional bits will probably not be enough. I still don't
> quite understand why you want individual bits for everything.
> Why not group them into logical pieces?
Each bit currently maps to one logical piece, that is why I expect
to have enough bits.
> If you really want individual bits you'll likely need to think
> about a clone2() call with more flags soon.
Being short on bits should keep us thinking about keeping things
in logical chunks.
>> Do you disagree that to be able to implement this properly we
>> need to take small steps?
>
> No, but at least the basic infrastructure for expansion should
> be added first.
>
>> Are there any semantic differences between a clone bit and what you
>> are proposing?
>
> No just internals.
Good that means we can still optimize this.
> > If it is just an internal implementation detail do you have a clear
>> suggestion on how to implement this? Possibly illustrated by the
>> thread flags that are already in this situation, and more likely
>> to always share everything.
>
> Have a proxy structure which has pointers to the many name spaces and a bit
> mask for "namespace X is different". This structure would be reference
> counted. task_struct has a single pointer to it.
>
> On clone check the clone flags against the bit mask. If there is any
> difference allocate a new structure and clone the name spaces into it.
> If no difference just use the old data structure after increasing its
> reference count.
>
> Possible name "nsproxy".
Sounds reasonable, and I have nothing against it.
I simply think at this point where we are still struggling to
get the simplest namespace merged and working correctly that is a premature
optimization.
>> Except for reducing reference counting I really don't see where
>> we could have a marked improvement. I also don't see us closing
>> the door to that kind of implementation at this point, but instead
>> taking the simple path.
>
> With many name spaces you would have smaller task_struct, less cache
> foot print, better cache use of task_struct because slab cache colouring
> will still work etc.
Makes sense. I have no problem against that as an optimization,
and it is firmly on the todo list as something to try. Right now with
only 2 non-thread clone flags I believe it will obfuscate the code more
than help performance.
Eric
^ permalink raw reply
* Minimize number of probed LUNs
From: Liran Schour @ 2006-05-02 8:46 UTC (permalink / raw)
To: linux-scsi; +Cc: Sivan Tal
Hi,
I am looking for a mechanisms to control the number of probed LUNs in a SAN
environment.
I have too many disks over the net I don't want a specific machine to "see"
all LUNs.
I am looking for a solution that is above the SCSI transport layer (no LUN
masking or zoning).
Does anybody know about solutions for this?
- Liran
^ permalink raw reply
* Re: [RFC] kernel facilities for cache prefetching
From: Wu Fengguang @ 2006-05-02 8:53 UTC (permalink / raw)
To: Arjan van de Ven
Cc: linux-kernel, Linus Torvalds, Andrew Morton, Jens Axboe,
Nick Piggin, Badari Pulavarty
In-Reply-To: <1146558617.32045.23.camel@laptopd505.fenrus.org>
On Tue, May 02, 2006 at 10:30:17AM +0200, Arjan van de Ven wrote:
> one interesting thing that came out of the fedora readahead work is that
> most of the bootup isn't actually IO bound. My test machine for example
> can load all the data into ram in about 10 seconds, so that the rest of
> the boot is basically IO-less. But that still takes 2 minutes....
> So I'm not entirely sure how much you can win by just attacking this.
Yes, I find it hard to improve the boot time of the init.d stage.
However, it is perfectly ok to preload all GUI staffs during that
timespan, by overlapping CPU/IO activities.
> Another interesting approach would be to actually put all the data you
> want to use in a non-fragmented, sequential area on disk somehow (there
> is an OLS paper submitted about that by Ben) so that at least the disk
> side is seekless...
You are right, reducing seeking distances helps not much. My fluxbox
desktop requires near 3k seeks, which can be loaded in the 20s init.d
booting time. But for KDE/GNOME desktops, some defragging would be
necessary to fit them into the 20s time span.
I found ext3 to be rather good filesystem to support poor man's defrag
described by Chris Mason:
http://www.gelato.unsw.edu.au/archives/git/0504/1690.html
This certainly can help. Based on some ideas from andrea I
made a poor man's defrag script last year that was similar.
It worked by copying files into a flat dir in the order you
expected to read them in, deleting the original, then hard
linking them into their original name.
Make the 'flat dir' as an top level dir would do the trick for ext3.
We have good chance to merge 10k seeks into 3k seeks by this trick :)
Wu
^ permalink raw reply
* Re: [RFC] kernel facilities for cache prefetching
From: Arjan van de Ven @ 2006-05-02 8:55 UTC (permalink / raw)
To: Wu Fengguang
Cc: linux-kernel, Linus Torvalds, Andrew Morton, Jens Axboe,
Nick Piggin, Badari Pulavarty
In-Reply-To: <20060502085325.GA9190@mail.ustc.edu.cn>
On Tue, 2006-05-02 at 16:53 +0800, Wu Fengguang wrote:
> On Tue, May 02, 2006 at 10:30:17AM +0200, Arjan van de Ven wrote:
> > one interesting thing that came out of the fedora readahead work is that
> > most of the bootup isn't actually IO bound. My test machine for example
> > can load all the data into ram in about 10 seconds, so that the rest of
> > the boot is basically IO-less. But that still takes 2 minutes....
> > So I'm not entirely sure how much you can win by just attacking this.
>
> Yes, I find it hard to improve the boot time of the init.d stage.
> However, it is perfectly ok to preload all GUI staffs during that
> timespan, by overlapping CPU/IO activities.
fwiw fedora even loads a bunch of GUI apps into memory already
>
> > Another interesting approach would be to actually put all the data you
> > want to use in a non-fragmented, sequential area on disk somehow (there
> > is an OLS paper submitted about that by Ben) so that at least the disk
> > side is seekless...
>
> You are right, reducing seeking distances helps not much. My fluxbox
> desktop requires near 3k seeks, which can be loaded in the 20s init.d
> booting time. But for KDE/GNOME desktops, some defragging would be
> necessary to fit them into the 20s time span.
or just move the blocks (or copy them) to a reserved area...
^ permalink raw reply
* Re: [PATCH 7/7] uts namespaces: Implement CLONE_NEWUTS flag
From: Eric W. Biederman @ 2006-05-02 8:55 UTC (permalink / raw)
To: Dave Hansen
Cc: Serge E. Hallyn, herbert, dev, linux-kernel, sam, xemul, clg,
frankeh
In-Reply-To: <1146515316.32079.27.camel@localhost.localdomain>
Dave Hansen <haveblue@us.ibm.com> writes:
> On Mon, 2006-05-01 at 14:53 -0500, Serge E. Hallyn wrote:
>> +struct uts_namespace *clone_uts_ns(struct uts_namespace *old_ns)
>> +{
>> + struct uts_namespace *ns;
>> +
>> + ns = kmalloc(sizeof(struct uts_namespace), GFP_KERNEL);
>> + if (ns) {
>> + memcpy(&ns->name, &old_ns->name, sizeof(ns->name));
>> + kref_init(&ns->kref);
>> + }
>> + return ns;
>> +}
>
> Very small nit...
>
> Would this memcpy be more appropriate as a strncpy()?
Nope. It is several strings. Although a different field name
for the old utsname structure might be called for to keep people
from getting confused.
Eric
^ permalink raw reply
* Re: [PATCH 3/3] fetch: optionally store the current remote information in the config
From: Junio C Hamano @ 2006-05-02 8:59 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git
In-Reply-To: <Pine.LNX.4.63.0604301524080.2646@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> This is what the patch series is all about.
>
> If there is no interest in a feature like this, let's just forget
> about the whole "remote info in config" thing.
Well, I took the liberty of adjusting the first one in the
series and tonight's "pu" has that one and the second one.
I haven't touched the third one yet, though.
About the second one, I think it probably is a good idea to
rename the "refspec used for fetch" as Sean suggested earlier.
I do not like that hidden environment variable that sits in the
command I use everyday, waiting to be triggered to update my
.config file, possibly by my PEBCAK mistake when I did not want
it to do so.
I am not quite sure what this bit is about in the second one:
sed -n \
-e "s/^URL: /remote.$name.url . /p" \
-e "s/^Pull: /remote.$name.pull ^$ /p" \
-e "s/^Push: /remote.$name.push ^$ /p" \
< "$f"
I am getting this out of the above:
remote.ko.url . xxx.kernel.org:/pub/scm/git/git.git/
remote.ko.pull ^$ master:refs/tags/ko-master
remote.ko.pull ^$ next:refs/tags/ko-next
remote.ko.pull ^$ +pu:refs/tags/ko-pu
remote.ko.pull ^$ maint:refs/tags/ko-maint
remote.ko.push ^$ heads/master
remote.ko.push ^$ heads/next
remote.ko.push ^$ +heads/pu
remote.ko.push ^$ heads/maint
but I suspect that is not what you intended...
I think easy conversion tool is a good idea, but I would sleep
better if it is outside of git-fetch/push chain and is available
elsewhere, perhaps in contrib/ area.
On a slightly related topic, I think my aversion to your "push
remotes into config" series the last time was primarily because
I do not trust repo-config. Reading an already built config
seems to work OK and I do not worry too much, but I am still
wary of letting it write. Typing "git repo-config" in a freshly
initialized empty repository seems to segfault, which does not
help my confidence level either.
^ permalink raw reply
* RedBoot partition not @ end of flash...
From: Deepak Saxena @ 2006-05-02 8:50 UTC (permalink / raw)
To: linux-mtd
I've got a board with a 32MiB flash (128K SectorSize) with the redboot table
only covering the first (32MiB - SectorSize) and the rest setup as OTP from
what I understand. What is the proper way to deal with this? What I'm doing
right now is a heinous hack:
ixp425_mtd->size -= ixp425_mtd->erasesize;
/* Try to parse RedBoot partitions */
npart = parse_mtd_partitions(ixp425_mtd, probes, &parsed_parts, 0);
if (npart > 0) {
res = add_mtd_partitions(ixp425_mtd, parsed_parts, npart);
} else {
printk("IXP425 Flash: Using static MTD partitions.\n");
res = add_mtd_partitions(ixp425_mtd, ixp425_partitions,
NB_OF(ixp425_partitions));
}
ixp425_mtd->size += ixp425_mtd->erasesize;
I tried setting the window size to (32MiB - SectorSize) before probing
but that failed miserably. One other thought I had was to create a
static partition map dividing the flash and then parse partitions
on the first region. Can the code handle recursive parsing?
I doubt I'm the first one to deal with this...
Tnx,
~Deepak
--
Deepak Saxena - dsaxena@plexity.net - http://www.plexity.net
I am not a consumer. My existence on this planet is not defined by my
relationship to a producer of goods. I was not put on this planet to
consume goods from a company for their profit. - Michael W.
^ permalink raw reply
* Re: [PATCH] built-in "git grep" (git grip).
From: Junio C Hamano @ 2006-05-02 9:01 UTC (permalink / raw)
To: Andreas Ericsson; +Cc: git
In-Reply-To: <44571967.7080807@op5.se>
Andreas Ericsson <ae@op5.se> writes:
> "git grip" work just fine for me, since it's only intended for testing
> and performance improvements so far. I also think it's clearer for
> end-users looking for a grep command if they're not faced with
> fgrep/egrep/ggrep/bgrep alongside plain "grep".
I renamed "git grip" to "git grep" and "git diffn" to "git diff"
both in "next" branch to avoid confusion. Thanks Andreas,
Jakub, and others for input.
^ permalink raw reply
* Re: /sys/power/state contents
From: Johannes Berg @ 2006-05-02 9:07 UTC (permalink / raw)
To: David Brownell; +Cc: linux-pm
In-Reply-To: <200605011531.00656.david-b@pacbell.net>
[-- Attachment #1.1: Type: text/plain, Size: 478 bytes --]
On Mon, 2006-05-01 at 15:31 -0700, David Brownell wrote:
> You mean, exactly like the valid_state() function already does??
Which actually opens up another question. Why is the default 1 instead
of 0? If an arch doesn't have any callbacks, why announce that it can do
it? It would seem more sensible to me to force an arch that wants to
support this to also have a valid call in order to announce it. Not that
it actually will work, but why even show it?
johannes
[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 793 bytes --]
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply
* Mapping page table pages read-only
From: Simon Kagstrom @ 2006-05-02 9:10 UTC (permalink / raw)
To: xen-devel list
Hello!
I'm working on porting some IA-32 memory management code where the
page tables pages are read before updating to check consistency
(basically to catch cases where the old mapping is lost). However, I'm
not really sure how to map the page table pages read-only in Xen.
I have pages 1-1-mapped pseudo-physical to virtual for the page
tables, and if I just update the page directory as-is, i.e.:
xen_flush_queue();
xen_queue_pt_update(phys_to_machine(to_phys(pageDirectoryVaddr)) + sizeof(void*)*l2_table_offset(vaddr),
phys_to_machine(value) | (value & ~(PAGE_SIZE-1)) );
xen_pt_pin((unsigned long)phys_to_machine(value));
(the code is based on the FreeBSD port and the MiniOS), I get the "Bad type" error:
(XEN) DOM220: (file=mm.c, line=1510) Bad type (saw f0000001 != exp 27ff0000) for mfn 1a6df (pfn 33da)
(XEN) DOM220: (file=mm.c, line=1780) Error while pinning mfn 1a6df
this goes away if I unmap the page first (update_va_mapping to
0). However, I'd like to keep the page mapped at the same 1-1
physical<->virtual address and still place it in the page
directory. I've tried
HYPERVISOR_update_va_mapping((unsigned long)page,
(pte_t){(unsigned long)phys_to_machine(page)},
PRESENT);
, being careful to only set bit 0 (PRESENT), which should make the
page read-only. If I do this, however, I get an access violation on
access of the page table page. Can anyone tell me what I do wrong
here?
// Simon
^ permalink raw reply
* Swedish Translations Howto is there any Program
From: Fredrik Söderlund @ 2006-05-02 9:11 UTC (permalink / raw)
To: Linux-8086
My question is howto make a usefull translation Is there any help program not
nessesary in Elks but fore linux to make translation so maby i could make a
Swedish translation on the FAQ ore HOWTO
toe my HTML nolage is not that big so i cant do this fancy indexing that is
done in Like in the other FAQ´s ???
What Program to use ?
source ore compiled not an issue iwe will fix that as long it is fore Linux..!
Kindly Regards Fille
--
Please ignore previous fortune.
-
To unsubscribe from this list: send the line "unsubscribe linux-8086" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: [Qemu-devel] bug report : kqemu and self-writing code
From: G Portokalidis @ 2006-05-02 9:13 UTC (permalink / raw)
To: qemu-devel
In-Reply-To: <20060502085504.66479ac3@c1358217.kevquinn.com>
I had a similar problem, but only when not using kqemu.
When using a stack overflow exploit, the shellcode provided only
executes when using kqemu. I can attribute this to either the
shellcode being in a different location (maybe someone can clarify
this, is qemu using a different memory layout e.g. stack is located in
a different virtual address), or qemu does not translate the shellcode
located in the stack and instead causes a memory fault (again i have
no idea why this should be the case).
When using kqemu the shellcode executes normally.
I did not have any time to investigate the reasons, but i have a hunch
it is the probably the translation.
If anyone knows what the problem is, i would be glad to write a patch.
On 02/05/06, Kevin F. Quinn <ml@kevquinn.com> wrote:
> Looks like SELinux to me. Even - you should raise it with whoever
> writes your policy.
>
> On Mon, 01 May 2006 23:29:54 +0200
> Fabrice Bellard <fabrice@bellard.org> wrote:
>
> > Are you sure that the bug is really in kqemu ? It is possible that
> > your guest kernel implements a security system which prevents self
> > modifying code using segment limits which QEMU does not check (but
> > kqemu checks them !).
> >
> > Regards,
> >
> > Fabrice.
> >
> > Even Rouault wrote:
> > > Guest OS : Linux 2.6.15-1.2054_FC5 i686 (Fedora Core 5 i386)
> > > Host OS: Linux 2.6.12-10-amd64-k8 #1 x86_64 (Ubuntu 5.10 amd64)
> > > QEMU Version : today CVS compiled with kqemu support
> > > KQEMU : 1.3.0pre6
> > > Binary used : qemu-system-x86-64 (so kqemu user-mode is used)
> > >
> > > I'm running the simple C code attached. With kqemu user-mode, this
> > > fails (sigsegv) with the following warning in dmesg :
> > >
> > > audit(1146505373.813:12): avc: denied { execheap } for pid=1860
> > > comm="selfmodifying scontext=user_u:system_r:unconfined_t:s0
> > > tcontext=user_u:system_r:unconfined_t:s0 tclass=process
> > > Erreur de segmentation
> > >
> > > Without kqemu enabled, it runs fine.
> > >
> > >
> > >
> > > ------------------------------------------------------------------------
> > >
> > > #define _XOPEN_SOURCE 600
> > > #include <sys/mman.h>
> > > #include <unistd.h>
> > > #include <stdlib.h>
> > > #include <stdio.h>
> > >
> > > int main(int argc, char** argv)
> > > {
> > > int pagesize = getpagesize();
> > > unsigned char* addr = NULL;
> > > posix_memalign((void**)&addr, pagesize, pagesize);
> > > mprotect(addr, pagesize, PROT_WRITE | PROT_READ | PROT_EXEC);
> > > addr[0] = 0x8b; addr[1] = 0x44; addr[2] = 0x24; addr[3] =
> > > 0x04; /* mov 0x4(%esp),%eax */ addr[4] = 0x83; addr[5] = 0xc0;
> > > addr[6] = 0x01; /* add $0x1,%eax */ addr[7] = 0xc3; /* ret */
> > >
> > > printf("10+1=%d\n", ((int (*)(int))addr)(10));
> > > free(addr);
> > > return 0;
> > > }
> > >
> > >
> > > ------------------------------------------------------------------------
> > >
> > > _______________________________________________
> > > Qemu-devel mailing list
> > > Qemu-devel@nongnu.org
> > > http://lists.nongnu.org/mailman/listinfo/qemu-devel
> >
> >
> >
> > _______________________________________________
> > Qemu-devel mailing list
> > Qemu-devel@nongnu.org
> > http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
>
> --
> Kevin F. Quinn
>
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
^ permalink raw reply
* Re: It is possible to install Windows XP with intel vt now ?
From: Thorolf Godawa @ 2006-05-02 9:20 UTC (permalink / raw)
To: Xen-devel
In-Reply-To: <c5530b840605011833v47faf590y550a233d36c36bad@mail.gmail.com>
Hi,
>Which OS are you use for Dom 0 ? And wich Xen version ?
SuSE Linux 10.0/Xen 3.0, SuSE Linux 10.1 Beta/Xen 3.0, 3.0.2,
SuSE SLES 10.0 Beta/Xen 3.0/3.0.1/3.0.2, Ubuntu 5.10/Xen 3.0.1
--
Chau y hasta luego,
Thorolf
^ permalink raw reply
* Re: omap mmc build errors
From: Tony Lindgren @ 2006-05-02 9:20 UTC (permalink / raw)
To: Komal Shah; +Cc: linux-omap-open-source
In-Reply-To: <20060413151756.47512.qmail@web32901.mail.mud.yahoo.com>
* Komal Shah <komal_shah802003@yahoo.com> [060413 08:18]:
> --- Carlos Aguiar <carlos.aguiar@indt.org.br> wrote:
>
> > Hi Komal and folks,
> >
> > You have to apply a patch that Tony sent to the list 7 days ago. This
> >
> > patch corrects the bugs mentioned above. Attached to this mail follow
> >
>
> You still need the attached patch on top of the Tony's patch to build
> it successfully.
I've just pushed that patch + fixed trying to ioremap a virtual address.
Seems to work now, can you test?
Tony
^ permalink raw reply
* Re: It is possible to install Windows XP with intel vt now ?
From: Thorolf Godawa @ 2006-05-02 9:20 UTC (permalink / raw)
To: Xen-devel
In-Reply-To: <c5530b840605011833v47faf590y550a233d36c36bad@mail.gmail.com>
Hi,
>Which OS are you use for Dom 0 ? And wich Xen version ?
SuSE Linux 10.0/Xen 3.0, SuSE Linux 10.1 Beta/Xen 3.0, 3.0.2,
SuSE SLES 10.0 Beta/Xen 3.0/3.0.1/3.0.2, Ubuntu 5.10/Xen 3.0.1
--
Chau y hasta luego,
Thorolf
^ permalink raw reply
* Re: [PATCH] built-in "git grep" (git grip).
From: Jakub Narebski @ 2006-05-02 9:25 UTC (permalink / raw)
To: git
In-Reply-To: <7vy7xkn6kd.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano wrote:
> Andreas Ericsson <ae@op5.se> writes:
>
>> "git grip" work just fine for me, since it's only intended for testing
>> and performance improvements so far. I also think it's clearer for
>> end-users looking for a grep command if they're not faced with
>> fgrep/egrep/ggrep/bgrep alongside plain "grep".
>
> I renamed "git grip" to "git grep" and "git diffn" to "git diff"
> both in "next" branch to avoid confusion. Thanks Andreas,
> Jakub, and others for input.
So, is there a way to use old, script version of those commands?
--
Jakub Narebski
Warsaw, Poland
^ permalink raw reply
* Re: [PATCH 13/16] ehca: firmware InfiniBand interface
From: Christoph Raisch @ 2006-05-02 9:30 UTC (permalink / raw)
To: Paul Mackerras
Cc: Hoang-Nam Nguyen, Jörn Engel, linux-kernel, linuxppc-dev,
Marcus Eder, openib-general, schihei
In-Reply-To: <17489.18630.75412.66803@cargo.ozlabs.ibm.com>
We started like that to get a clean interface between the register
intensive h_calls and the driver code.
We're in the middle of the tradeoff "nice interface" vs strict fencing of
data structures from one code piece to another.
Initially these functions, which only move paramaters from the stack into
registers and back, were inline functions.
So the compiler collapsed the function call into "nothing", which won't
work if you use a struct *.
Somewhen during code reviews people agreed that having this many inline
functions leads to large header files
which isn't a good idea either.
We're about to change that interface again, so what should be the max
number of parameters in a function call?
The limit in existing kernel code is somewhere between 5-8
(just as a reminder, 8 is the max nr of parameters to be passed by register
on ppc)
christoph raisch
Paul Mackerras <paulus@samba.org> wrote on 28.04.2006 00:42:14:
> Jörn Engel writes:
>
> > 25 parameters? If you tell me which drugs were involved in this code,
> > I know what to stay away from.
>
> You really need to ask the firmware architects that, since this is
> basically a single firmware call.
>
> Mind you, since a lot of the parameters are used to return individual
> bytes or half-words, which are then put into structures, it might be
> better to pass the pointers to the structures and let the wrapper put
> the values straight into the structures.
>
> Paul.
^ permalink raw reply
* PowerMac: force only suspend-to-disk to be valid
From: Johannes Berg @ 2006-05-02 9:31 UTC (permalink / raw)
To: linuxppc-dev list
This patch adds the .valid callback to pm_ops on PowerMac so that only the
suspend to disk state can be entered. Note that just returning 0 would
suffice since the upper layers don't pass PM_SUSPEND_DISK down, but I think
they ought to be passing it down since they do really need support (or
am I mistaken again?) so we handle it there regardless.
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
--- wireless-dev.orig/arch/powerpc/platforms/powermac/setup.c 2006-05-02 10:57:32.101509438 +0200
+++ wireless-dev/arch/powerpc/platforms/powermac/setup.c 2006-05-02 10:58:44.491509438 +0200
@@ -463,11 +463,23 @@ static int pmac_pm_finish(suspend_state_
return 0;
}
+static int pmac_pm_valid(suspend_state_t state)
+{
+ switch (state) {
+ case PM_SUSPEND_DISK:
+ return 1;
+ /* can't do any other states via generic mechanism yet */
+ default:
+ return 0;
+ }
+}
+
static struct pm_ops pmac_pm_ops = {
.pm_disk_mode = PM_DISK_SHUTDOWN,
.prepare = pmac_pm_prepare,
.enter = pmac_pm_enter,
.finish = pmac_pm_finish,
+ .valid = pmac_pm_valid,
};
#endif /* CONFIG_SOFTWARE_SUSPEND */
^ permalink raw reply
* [linux-lvm] Snapshot segfaults lvremove + bug kernel
From: Gabriel Barazer @ 2006-05-02 9:32 UTC (permalink / raw)
To: linux-lvm
Hello,
I recently posted a LVM freeze while deleting snapshot, which could be workaround-ed by issuing a dmsetup resume command.
I was replied on the list that my tools weren't up to date (i had the stable versions, the up to date are devel), so I retried the whole thing (adding/deleting snapshot) with the new tools
Versions are :
Kernel 2.6.16.1
LVM 2.02.05
Livdevmapper 1.02.05
Driver 4.5.0
The lvcreate has been successfully created , but the lvremove after gave me a segfault. Then the whole LVM system froze. After hard-rebooting, the snapshot is still here. Anyone got the same , or found a solution ?
Here is the kernel bug detail :
May 2 11:01:19 filer1 kernel: ----------- [cut here ] --------- [please bite here ] ---------
May 2 11:01:19 filer1 kernel: Kernel BUG at drivers/md/kcopyd.c:146
May 2 11:01:19 filer1 kernel: invalid opcode: 0000 [1] SMP
May 2 11:01:19 filer1 kernel: CPU 2
May 2 11:01:19 filer1 kernel: Modules linked in:
May 2 11:01:19 filer1 kernel: Pid: 22328, comm: lvremove Not tainted 2.6.16.1 #1
May 2 11:01:19 filer1 kernel: RIP: 0010:[<ffffffff80378628>] <ffffffff80378628>{client_free_pages+12}
May 2 11:01:19 filer1 kernel: RSP: 0000:ffff810056effcb8 EFLAGS: 00010287
May 2 11:01:19 filer1 kernel: RAX: 0000000000000100 RBX: ffff810011a46cc0 RCX: 000000000000004c
May 2 11:01:19 filer1 kernel: RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff810011a46cc0
May 2 11:01:19 filer1 kernel: RBP: ffffc20000029080 R08: ffff810002f97c18 R09: 0000000000000000
May 2 11:01:19 filer1 kernel: R10: ffff81007b489200 R11: ffff8100474d13c0 R12: 0000000000000000
May 2 11:01:19 filer1 kernel: R13: 00000000c138fd04 R14: 00000000005a81f0 R15: ffffffff80377031
May 2 11:01:19 filer1 kernel: FS: 00002b71ca6386e0(0000) GS:ffff81007ff11340(0000) knlGS:0000000000000000
May 2 11:01:19 filer1 kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
May 2 11:01:19 filer1 kernel: CR2: 000000000043c3c0 CR3: 0000000050ee8000 CR4: 00000000000006e0
May 2 11:01:19 filer1 kernel: Process lvremove (pid: 22328, threadinfo ffff810056efe000, task ffff81007f0c37a0)
May 2 11:01:19 filer1 kernel: Stack: ffff810011a46cc0 ffffffff80378fe3 ffff81001b976bc0 ffffffff8037cd87
May 2 11:01:19 filer1 kernel: ffff8100641ef8c8 ffffc20000029080 ffff81007f381e00 ffffffff803750b9
May 2 11:01:19 filer1 kernel: ffff81007f381e00 ffff8100474d11c0
May 2 11:01:19 filer1 kernel: Call Trace: <ffffffff80378fe3>{kcopyd_client_destroy+20}
May 2 11:01:19 filer1 kernel: <ffffffff8037cd87>{snapshot_dtr+217} <ffffffff803750b9>{dm_table_put+95}
May 2 11:01:19 filer1 kernel: <ffffffff8037685e>{__hash_remove+124} <ffffffff80377077>{dev_remove+70}
May 2 11:01:19 filer1 kernel: <ffffffff80377d6b>{ctl_ioctl+600} <ffffffff80451bc1>{__sched_text_start+1473}
May 2 11:01:19 filer1 kernel: <ffffffff80180865>{do_ioctl+93} <ffffffff80180ae1>{vfs_ioctl+618}
May 2 11:01:19 filer1 kernel: <ffffffff80180b2e>{sys_ioctl+60} <ffffffff8010a9a6>{system_call+126}
May 2 11:01:19 filer1 kernel:
May 2 11:01:19 filer1 kernel: Code: 0f 0b 68 06 93 4b 80 c2 92 00 48 8b 7b 18 e8 b6 ff ff ff 48
May 2 11:01:19 filer1 kernel: RIP <ffffffff80378628>{client_free_pages+12} RSP <ffff810056effcb8>
May 2 11:01:19 filer1 kernel: <1>Unable to handle kernel NULL pointer dereference at 0000000000000040 RIP:
May 2 11:01:19 filer1 kernel: <ffffffff80174ca6>{bio_add_page+22}
May 2 11:01:19 filer1 kernel: PGD 0
May 2 11:01:19 filer1 kernel: Oops: 0000 [2] SMP
May 2 11:01:19 filer1 kernel: CPU 0
May 2 11:01:19 filer1 kernel: Modules linked in:
May 2 11:01:19 filer1 kernel: Pid: 2775, comm: kcopyd Not tainted 2.6.16.1 #1
May 2 11:01:19 filer1 kernel: RIP: 0010:[<ffffffff80174ca6>] <ffffffff80174ca6>{bio_add_page+22}
May 2 11:01:19 filer1 kernel: RSP: 0018:ffff81007af9bcf0 EFLAGS: 00010206
May 2 11:01:19 filer1 kernel: RAX: 0000000000000000 RBX: ffff810078152d00 RCX: 0000000000001000
May 2 11:01:19 filer1 kernel: RDX: ffff810002284bc8 RSI: ffff810002284bc8 RDI: ffff810078152d00
May 2 11:01:19 filer1 kernel: RBP: 0000000000000010 R08: 0000000000000000 R09: ffff81007fbd68e0
May 2 11:01:19 filer1 kernel: R10: ffff810078152d00 R11: ffff81007f837958 R12: ffff81007af9bdc8
May 2 11:01:19 filer1 kernel: R13: ffff81007af96380 R14: ffff81005bb73500 R15: 0000000000000001
May 2 11:01:19 filer1 kernel: FS: 0000000000000000(0000) GS:ffffffff80600000(0000) knlGS:0000000000000000
May 2 11:01:19 filer1 kernel: CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
May 2 11:01:19 filer1 kernel: CR2: 0000000000000040 CR3: 000000007b1d2000 CR4: 00000000000006e0
May 2 11:01:19 filer1 kernel: Process kcopyd (pid: 2775, threadinfo ffff81007af9a000, task ffff81007fbd68e0)
May 2 11:01:19 filer1 kernel: Stack: ffffffff803781ef 0000000000000246 ffff81007af96380 000000017fafb6c0
May 2 11:01:19 filer1 kernel: ffff810002284bc8 0000000000001000 0000000080150ab2 ffffffff80377f95
May 2 11:01:19 filer1 kernel: ffffffff80377fb6 ffff810000000000
May 2 11:01:19 filer1 kernel: Call Trace: <ffffffff803781ef>{dispatch_io+344} <ffffffff80377f95>{list_get_page+0}
May 2 11:01:19 filer1 kernel: <ffffffff80377fb6>{list_next_page+0} <ffffffff80378722>{complete_io+0}
May 2 11:01:19 filer1 kernel: <ffffffff803783e5>{async_io+172} <ffffffff80378722>{complete_io+0}
May 2 11:01:19 filer1 kernel: <ffffffff80378508>{dm_io_async+64} <ffffffff80377f95>{list_get_page+0}
May 2 11:01:19 filer1 kernel: <ffffffff80377fb6>{list_next_page+0} <ffffffff80378800>{run_io_job+0}
May 2 11:01:19 filer1 kernel: <ffffffff803789f6>{do_work+0} <ffffffff80378844>{run_io_job+68}
May 2 11:01:19 filer1 kernel: <ffffffff8037891c>{process_jobs+28} <ffffffff8013fdfa>{run_workqueue+155}
May 2 11:01:19 filer1 kernel: <ffffffff8013fe41>{worker_thread+0} <ffffffff80143248>{keventd_create_kthread+0}
May 2 11:01:19 filer1 kernel: <ffffffff8013ff46>{worker_thread+261} <ffffffff8012a872>{default_wake_function+0}
May 2 11:01:19 filer1 kernel: <ffffffff80143248>{keventd_create_kthread+0} <ffffffff8012a872>{default_wake_function+0}
May 2 11:01:19 filer1 kernel: <ffffffff80143248>{keventd_create_kthread+0} <ffffffff8014321f>{kthread+200}
May 2 11:01:19 filer1 kernel: <ffffffff8010b89e>{child_rip+8} <ffffffff80143248>{keventd_create_kthread+0}
May 2 11:01:19 filer1 kernel: <ffffffff80143157>{kthread+0} <ffffffff8010b896>{child_rip+0}
May 2 11:01:19 filer1 kernel:
May 2 11:01:19 filer1 kernel: Code: 48 8b 78 40 4c 89 d6 44 0f b7 8f 54 02 00 00 e9 e6 fd ff ff
May 2 11:01:19 filer1 kernel: RIP <ffffffff80174ca6>{bio_add_page+22} RSP <ffff81007af9bcf0>
May 2 11:01:19 filer1 kernel: CR2: 0000000000000040
----
Hardware is dual xeon em64t on 64bit fedora3-based distro.
--
Gabriel Barazer <gabriel@oxeva.fr>
OXEVA
Tel: +33 (0) 478 37 12 05
Fax: +33 (0) 472 56 50 49
^ permalink raw reply
* [PATCH] ftdi_sio: ACT Solutions HomePro ZWave interface
From: Razvan Gavril @ 2006-05-02 9:32 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1 bytes --]
[-- Attachment #2: ftdi_sio-ZWave.patch --]
[-- Type: text/x-patch, Size: 1156 bytes --]
diff -Nur linux-2.6.16.12/drivers/usb/serial/ftdi_sio.c linux-2.6.16.12-pluto-1/drivers/usb/serial/ftdi_sio.c
--- linux-2.6.16.12/drivers/usb/serial/ftdi_sio.c 2006-05-01 15:14:26.000000000 -0400
+++ linux-2.6.16.12-pluto-1/drivers/usb/serial/ftdi_sio.c 2006-05-02 05:12:10.000000000 -0400
@@ -307,6 +307,7 @@
static struct usb_device_id id_table_combined [] = {
+ { USB_DEVICE(FTDI_VID, FTDI_ACTZWAVE_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_IRTRANS_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_SIO_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_8U232AM_PID) },
diff -Nur linux-2.6.16.12/drivers/usb/serial/ftdi_sio.h linux-2.6.16.12-pluto-1/drivers/usb/serial/ftdi_sio.h
--- linux-2.6.16.12/drivers/usb/serial/ftdi_sio.h 2006-05-01 15:14:26.000000000 -0400
+++ linux-2.6.16.12-pluto-1/drivers/usb/serial/ftdi_sio.h 2006-05-02 05:13:00.000000000 -0400
@@ -380,6 +380,9 @@
/* Pyramid Computer GmbH */
#define FTDI_PYRAMID_PID 0xE6C8 /* Pyramid Appliance Display */
+/* ACT Solutions HomePro ZWave interface (http://www.act-solutions.com/HomePro.htm) */
+#define FTDI_ACTZWAVE_PID 0xF2D0
+
/*
* Posiflex inc retail equipment (http://www.posiflex.com.tw)
*/
^ 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.