Martin Dalecki [Mon, 22 Apr 2002 07:13:03 +0000 (00:13 -0700)]
[PATCH] 2.5.8 IDE 40
- Make the ide-cd driver usable again in DMA mode by adapting it to the TCQ
related request handling changes and fixing some other minor stuff related to
this. This patch is ugly like hell I know. Cleanup will follow separately.
It was hard enough to make this going agian at all.
Rusty Russell [Mon, 22 Apr 2002 06:12:00 +0000 (23:12 -0700)]
[PATCH] SAK messages
vda@port.imtp.ilyichevsk.odessa.ua: SAK messages:
I use SAK from time to time when I have problems with hung processes.
Sometimes it is difficult to figure out what was being killed and why.
For example, Midnight Commander contains a bug: it holds fd#3 open to
the tty. It prevented me from daemonizing processes (like X) - they
died upon SAK.
This little patch makes SAK tell whom and why it kills. Tested.
Rusty Russell [Mon, 22 Apr 2002 06:11:47 +0000 (23:11 -0700)]
[PATCH] Trivial patch for msbusmouse.c
johnpol@2ka.mipt.ru: Re: Trivial patch for msbusmouse.c:
> On Tue, Mar 19, 2002 at 03:22:58PM +1100, Rusty Russell wrote:
> > Hi Russell,
> >
> > Please check this request_region() cleanup patch from Evgeniy
> > Polyakov against 2.4 and 2.5.
>
> Both patches look fine, apart from the disgusting formatting being
> different from the rest of the files.
As you wish...
> --
> Russell King (rmk@arm.linux.org.uk) The developer of
> ARM Linux
> http://www.arm.linux.org.uk/personal/aboutme.html
Rusty Russell [Mon, 22 Apr 2002 06:11:38 +0000 (23:11 -0700)]
[PATCH] Trivial patch for logibusmouse.c
johnpol@2ka.mipt.ru: Re: Trivial patch for logibusmouse.c:
> On Tue, Mar 19, 2002 at 03:22:58PM +1100, Rusty Russell wrote:
> > Hi Russell,
> >
> > Please check this request_region() cleanup patch from Evgeniy
> > Polyakov against 2.4 and 2.5.
>
> Both patches look fine, apart from the disgusting formatting being
> different from the rest of the files.
As you wish...
> --
> Russell King (rmk@arm.linux.org.uk) The developer of
> ARM Linux
> http://www.arm.linux.org.uk/personal/aboutme.html
Rusty Russell [Mon, 22 Apr 2002 06:11:18 +0000 (23:11 -0700)]
[PATCH] make TAGS to work with bitkeeper
Peter Chubb <peter@chubb.wattle.id.au>: make TAGS to work with bitkeeper:
If you type, `make TAGS' in the top-level of a kernel tree that's been
created with bk clone (or if you're using sccs to maintain your own
copy), then the sccs control files are included in the TAGS file (sccs
distinguishes its control files with an s. prefix rather than using a
suffix, so the matches on '*.h' etc pick them up.)
Rusty Russell [Mon, 22 Apr 2002 06:09:57 +0000 (23:09 -0700)]
[PATCH] kernel-hacking.tmpl
Mark Hymers <markh@linuxfromscratch.org>: Kernel tree patch; Documentation_DocBook_kernel-hacking.tmpl:
Hi,
Just a small thing I noticed when grepping through the kernel source:
one of the templates in Documentation/DocBook has a typo (I think). I
believe it should refer to MODULE_LICENSE instead of LICENCE. Please
correct me if I'm wrong though.
Rusty Russell [Mon, 22 Apr 2002 06:09:38 +0000 (23:09 -0700)]
[PATCH] fcntl returns wrong error code (Updated)
Christopher Yeoh <cyeoh@samba.org>: Re: fcntl returns wrong error code (Updated):
At 2002/3/22 00:58+1100 Christopher Yeoh writes:
> btw Stephen Rothwell pointed out that there is a much neater way to
> achieve the same change. I'll post a new patch in the morning.
Rusty Russell [Mon, 22 Apr 2002 06:09:26 +0000 (23:09 -0700)]
[PATCH] serial.c ISAPNP fix:
Andrey Panin <pazke@orbita1.ru>: serial.c ISAPNP fix:
Thist patch fixes buglet which disables ISAPNP support in serial driver.
__ISAPNP__ conditional symbol is used before isapnp.h is included.
Rusty Russell [Mon, 22 Apr 2002 06:09:07 +0000 (23:09 -0700)]
[PATCH] drivers_net_eepro100: missing __devinit:
Andrey Panin <pazke@orbita1.ru>: drivers_net_eepro100: missing __devinit:
This patch adds missing __devinit modifiers for speedo_found1() and
do_eeprom_cmd() functions. Patch against 2.5.8. Compiles, but untested.
Rusty Russell [Mon, 22 Apr 2002 06:08:48 +0000 (23:08 -0700)]
[PATCH] drivers_net_dl2k.c: missing __devinit's
Andrey Panin <pazke@orbita1.ru>: drivers_net_dl2k.c: missing __devinit's:
This patch adds missing __devinit modifiers for read_eeprom() and
parse_eeprom() functions. Patch against 2.5.8. Compiles, but untested.
Alexander Viro [Mon, 22 Apr 2002 06:03:58 +0000 (23:03 -0700)]
[PATCH] (5/5) sane procfs/dcache interaction
- sane retention policy for /proc/<pid>/fd/* - ->d_revalidate() says
"kill it" if descriptor is not opened anymore (in addition to checks
for task being dead) and we allow dentries of /proc/<pid>/fd/<n> to
stay around.
Alexander Viro [Mon, 22 Apr 2002 06:03:37 +0000 (23:03 -0700)]
[PATCH] (3/5) sane procfs/dcache interaction
- sane dentry retention. Namely, we don't kill /proc/<pid> dentries at the
first opportunity (as the current tree does). Instead we do the following:
* ->d_delete() kills it only if process is already dead.
* all ->lookup() in proc/base.c end with checking if process is still
alive and unhash if it isn't.
* proc_pid_lookup() (lookup for /proc/<pid>) caches reference to dentry
in task_struct. It's _not_ counted in ->d_count.
* ->d_iput() resets said reference to NULL.
* release_task() (burying a zombie) checks if there is a cached
reference and if there is - shrinks the subtree.
* tasklist_lock is used for exclusion.
That way we are guaranteed that after release_task() all dentries in
/proc/<pid> will go away as soon as possible; OTOH, before release_task()
we have normal retention policy - they go away under memory pressure with
the same rules as for dentries on any other fs.
Alexander Viro [Mon, 22 Apr 2002 06:03:28 +0000 (23:03 -0700)]
[PATCH] (2/5) sane procfs/dcache interaction
- new helper in fs/proc/base.c - name_to_int(dentry) returns ~0U if name
doesn't match 0|[1-9][0-9]* or is too large. Otherwise it returns
numeric value of name. proc_pid_lookup() and proc_lookupfd() converted.
Alexander Viro [Mon, 22 Apr 2002 05:59:14 +0000 (22:59 -0700)]
[PATCH] buffer_head leak
Fix buffer-head leak on truncate race.
The reason why it hadn't been triggered left right and center is that we
step on that path only when partial truncate blows away an indirect
block shared between truncated and remaining areas _and_ races with
ext2_get_block() in the beginning of said area. IOW, we need
* indirect block with hole in the beginning
* get_block starting to read that block
* truncate killing everything past the hole (and thus freeing indirect
block in question)
* get_block completing the read and noticing that block is actually
gone.
OK... IMO we should do that brelse() outside of the loop.
Make the PCMCIA client drivers depend on hisax.o,
use the right CONFIG_ variable for hisax submodules,
handle the case of built-in hisax, modular hisax submodules.
[PATCH] x86-64 architecture specific sync for 2.5.8
This patch brings 2.5.8 in sync with the x86-64 2.4 development tree again
(excluding device drivers)
It has lots of bug fixes and enhancements. It only touches architecture
specific files.
- Sync with 2.5.8
- SMP/APIC supported now.
- Module loading works now.
- Time keeping bugs fixed.
- entry.S streamlined and some bugs fixed.
- modify_ldt works now
- mostly rewritten FPU support (including FXRSTOR for initial FPU
initialization based on the initial state)
- 32bit emulation enhanced and bugs fixed.
- rewrote mm initialization and lots of cleanups in the page table handling
__PAGE_OFFSET is now moved to 0x10000000000 and some vmalloc/ioremap
problems have been fixed. They have an own PML4 slot now.
- WCHAN reporting support for RIP (but not RSP)
- Lots of various other bug fixes and cleanups.
Currently broken:
- ACPI
- MTRR
It needs some other bugfixes outside architecture specific code. I sent
them all in separate mail.
[PATCH] Fix console initialization deadlock for x86-64
When vt_init happens to run before the keyboard is initialized (the order is random
because they're both different initcalls) then set_leds raises an not yet enabled
tasklet. This causes an endless loop on the first schedule() call because the tasklet
handling cannot handle raised but disabled tasklets.
This patch just does not do set_leds in virtual terminal initialization to avoid that.
It is done later anyways.
[PATCH] 1096/3: trizeps PCMCIA support
(a minor fix to the previous version - 1096/2)
The enclosed patch includes trizeps-specific PCMCIA code. All
modifications are enclosed in
#ifdef CONFIG_SA1100_TRIZEPS
#endif
blocks or are linked as
+sa1100_cs-objs- += sa1100_trizeps.o
so, other platforms remain unaffected. The patch is built against
2.5.6-rmk1.
- (tcq, general) Remove the 'attempt to keep queue full option'. It worked
on some IBM models, but failed miserably on others. Also removes some
uglies in ide_queue_commands()
- (tcq0 Change default depth back to 32.
- (general) Add isr for no-dataphase taskfile, like task_no_data_intr but
doesn't complain about failure. This is handy for commands what we _know_
will fail, such as WIN_NOP.
- (general) ide_cmd_type_parser() must set a handler to WIN_NOP... Otherwise
we will just hang the ide system issuing a nop.
- (general) Have ide_raw_taskfile() copy back the taskfile after execution,
otherwise we cannot use the info that ide_end_drive_cmd() puts in
there.
- (tcq) Use nIEN bit correctly in ide-tcq
- (tcq) Small ide_tcq_wait_altstat() changes. Do initial 400ns delay (1us
here), then 10us each successive run.
- (tcq) Add beginning for 'nop auto poll' support check.
- (tcq) Arm handler before GET_STAT() service check in
ide_dma_queued_start, WD seemed to trigger interrupt before that.
Makes WD Expert drives work with tcq.
Fix drivers/scsi/aic7xxx/Makefile for building a modular aic7xxx driver
Use the (well, one) standard way to build a multi-part module.
Standard except for that we build aix7xxx_mod.o but then rename it
at modules_install time (just as it was before).
Erich Focht [Thu, 18 Apr 2002 12:21:36 +0000 (05:21 -0700)]
[PATCH] more migration thread cleanups
I'm currently working on a node affine scheduler extension for NUMA
machines and the load balancer behaves a bit different from the original.
So after a few boot failures with those slowly booting 16 CPU IA64
machines I thought there must be a simpler solution than synchronizing and
waiting for the load balancer: just let migration_CPU0 do what it is
designed for. So my proposal is:
- start all migration threads on CPU#0
- initialize migration_CPU0 (trivial, reliable, as it already is on
the right CPU)
- let all other migration threads use set_cpus_allowed() to get to the
right place
The only synchronization needed is the non-zero migration threads waiting
for migration_CPU0 to start working, which it will, as it is already on
the right CPU. This saves quite some lines of code.
I first posted this to LKML on March 6th (BTW, the fix #1, too) and since
then it was tested on several big NUMA platforms: 16 CPU NEC AzusA (IA64)
(also known as HP rx....), up to 32 CPU SGI IA64, 16 CPU IBM NUMA-Q
(IA32). No more lock-ups at boot since then. So I consider it working.
There is another good reason for this approach: the integration of the CPU
hotplug patch with the new scheduler becomes easier. One just needs to
create the new migration thread, it will move itself to the right CPU
without any additional magic (which you otherwise need because of the
synchronizations which won't be there at hotplug). Kimi Suganuma in the
neighboring cube is fiddling this out currently.
Robert Love [Thu, 18 Apr 2002 09:01:31 +0000 (02:01 -0700)]
[PATCH] migration thread fix
Attached is a patch that disables interrupts while holding the rq_lock.
This is certainly needed to prevent a race against the timer tick, as
Erich Focht pointed out.
François Romieu [Thu, 18 Apr 2002 07:57:44 +0000 (00:57 -0700)]
[PATCH] 2.4.8 - dscc4 update 7/13
- dscc4_do_action() now looks like the others event waiting loops (may be
called from interrupt context however);
- dscc4_start_xmit(): cosmetic before LxDA changes + mb() parano;
- dscc4_clock_setting(): only one return point, thanks;
- dscc4_priv() invocation removed from dscc4_xxx_settings;
- minor cleanups.
François Romieu [Thu, 18 Apr 2002 07:57:30 +0000 (00:57 -0700)]
[PATCH] 2.4.8 - dscc4 update 5/13
- DEBUG_PARANOIA was bad. "if (debug > x) {" is nice;
- state_check() now has only one return point;
- try_get_rx_skb() cosmetic;
- dscc4_rx_update() belongs to HOLD mode to LxDA changes;
- dscc4_wait_ack_cec() behaves like dscc4_xpr_ack();
- dscc4_rx_skb() refill logic is ready for LxDA mode and does everything
to fulfill what its name suggests.
- document some errata voodoo in dscc4_init_one();
- dscc4_init_ring() should handle try_get_rx_skb() failure.
François Romieu [Thu, 18 Apr 2002 07:57:21 +0000 (00:57 -0700)]
[PATCH] 2.4.8 - dscc4 update 4/13
- dscc4_xpr_ack() busy waiting loop is modified so as to allow long
delay without chewing too much cycles;
- more errata sheet magic;
- dscc4_set_clock() now has only one return point.
François Romieu [Thu, 18 Apr 2002 07:57:04 +0000 (00:57 -0700)]
[PATCH] 2.4.8 - dscc4 update 2/13
- dscc4_patch_register() turns into scc_patchl() and should now avoid an
hardware bug quoted in errata sheet;
- dscc4_init_registers() interface changes as any caller doesn't really need
to poke into dscc4_dev_priv internal;
- scc_{writel/readl}() are added to access some buggy behaving registers;
- {read/write}l conversion to the previous functions
- dscc4_do_tx() sneaks, sorry. Belongs to HOLD -> LxDA changes.
Martin J. Bligh [Thu, 18 Apr 2002 07:54:39 +0000 (00:54 -0700)]
[PATCH] stop NULL pointer dereference in __alloc_pages
This trivial patch will apply to both 2.4.19-pre7 and 2.5.8 with just line
offsets. It stops us from following a NULL pointer in classzone in the case
where there is a pgdat without a fully populated zone list (ie a node with
no ZONE_NORMAL on an ia32 NUMA machine). Without this patch, ia32
NUMA machines won't even boot - we dereference the classzone ptr
a few lines further down (or try to ;-) ).
Andrew Morton [Thu, 18 Apr 2002 06:28:44 +0000 (23:28 -0700)]
[PATCH] pagecache locking bugfix
The bug which Anton found. On the
find_or_create_page->__find_lock_page path we're performing
a read_unlock of an rwlock which is held for writing.
The patch converts that to using a write_lock throughout.
Which penalises find_lock_page() a bit. If it shows up
on profiles then we can clone __find_lock_page() and
use read_lock()s, but for now I'd opt for saving the
cache footprint.
Martin Dalecki [Thu, 18 Apr 2002 02:53:10 +0000 (19:53 -0700)]
[PATCH] 2.5.8 IDE 38
- Fix typo in ide_cmd_ioctl().
- Fix typo in cris driver.
- Don't retry operations on medium errors. (pointed out by Eric Andersen).
- Attach the no_io_32bit, io_32bit, no_unmask, unmask and slow fields to the
ata_channel instead of the ata_device structure. They are a property of the
channel and not just the devices attached to it. This allowed us to fix the
set_io_32bit function by removing the CONFIG_BLK_DEV_DTC2278 conditional. In
fact initialization shows that this is fixing many other host chipsets as
well since all of them did expect sometimes particular values for those
parameters in paralell on both drives attached to a channel but we where
allowed to apply different values on a per drive basis.
- The keep_settings flag is now unconditional and we don't mess with any
channel parameters before drive reset. Some chipsets really really expect
unconditionally that the tweaks they apply are always present and this wasn't
honoured thus far! We are expecting the user to have good reasons for
manually tweaking the settings.
- Don't reset io_32bit in ata_pre_reset() unconditionally. There are chipsets
out there which expect io_32bit to be *allways* enabled!
- Remove many obsolete and nawadays just confusing documentation from ide.txt
Steven Cole [Wed, 17 Apr 2002 21:32:45 +0000 (22:32 +0100)]
[PATCH] add 22 help texts to arch/arm/Config.help
This is a resend of a previous patch which got mangled by my mailer.
Inserting a text file into Evolution works, but cutting and pasting from one
window to another doesn't always work as expected.
This patch adds 22 help texts to arch/arm/Config.help.
The help texts were obtained from ESR's v2.97 Configure.help.
Russell King [Wed, 17 Apr 2002 19:44:06 +0000 (20:44 +0100)]
This changeset adds a new feature to ARM - the ability to load the
kernel zImage almost anywhere in RAM and call it directly, without
having to copy it to a specific address. This removes a dependency
between the boot loader and the kernel.
Dave Hansen [Tue, 16 Apr 2002 06:47:47 +0000 (23:47 -0700)]
[PATCH] fix ips driver compile problems
This patch has been floating inside IBM for a bit, but it appears
that no one passed it back up to you, yet. I don't know who wrote it,
but it applies to 2.5.8 and the ServeRAID driver works just fine with it
applied. Without it, the driver fails to compile.
David Mosberger [Tue, 16 Apr 2002 06:47:27 +0000 (23:47 -0700)]
[PATCH] prctl() patch
This is the patch to add support for PR_SET_FPEMU/PR_GET_FPEMU to give
per-process control over fp-emulation handling. It also cleans up the
way PR_SET_UNALIGN_CTL/PR_GET_UNALIGN_CTL are implemented.