This patch fixes up some lose ends left over from the last x86-64 jumbo merge.
- make it compile again. ia32_ioctl was referencing IDE ioctls that got
remove in a merge race
- Use the memset/FXRSTOR way to initialize the FPU, as discussed.
- Fix semctl/shmctl ABI (thanks to Andreas Schwab)
- Other minor fixes.
This fixes compile errors. It has been tested with a weekend of Bonnie++ 8GB
runs on a RAID0 setup at the OSDL. This was built against and tested on 2.5.8
and applies cleanly to 2.5.9.
LSI told me they have a version 2.0 of the driver in development but
it would be really nice to have the dang thing working now ;-)
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.
After some source investigations I discovered a harmless mistake:
The description of the usb_control_msg(...) function says
it returns 0, or less than 0 if an error occured, but
the usb_internal_control_msg returns length, which is sometimes >0
(success) or <0 if error.
David Brownell [Mon, 22 Apr 2002 06:33:19 +0000 (23:33 -0700)]
[PATCH] Re: PATCH: 2.5.8 ehci, submit errors
Oh, and for non-x86 platforms with interesting pci
mapping, this tweak to one new routine would be
important in a particular error path I've yet to see ... :)
David Brownell [Mon, 22 Apr 2002 06:32:58 +0000 (23:32 -0700)]
[PATCH] PATCH: 2.5.8 ehci, submit errors
It fixes problems with interrupt transfers, which I think that
nobody else has run into (or I'd surely have heard of it :).
Looks like not many folk are using USB 2.0 hubs yet.
- wasn't checking enough of the periodic schedule to
detect bandwidth overcommit (would BUG out)
- frames to uframes is rightshift 3, not 8 :)
- properly cleans up (no oops!) after certain rare errors
in the interrupt submit path (just my luck to hit one)
- use that cleanup to bypass some old implementation
shortcuts in the control and bulk submit paths
- there are also some other minor updates/cleanups
general cleanups:
- removed commented out function prototypes
- removed duplicate function prototypes
- removed unneeded #include
- added named initializers
- merged lots of the individual device structures into general 1, 2, and 4 port structures.
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.
This updates the ov511 driver to the latest stable version (1.60).
Summary of changes:
- Remove palette conversion and related code
- Full OV518 support (except for color), initial OV518+ support
- Improved OV6620 quality (Credit: Alexandre F.)
- ov51x_init_isoc() should exit if usb_submit_urb() fails
- ISO completion handler should only issue warning if bad data is received
- Added "mirror" module parameter; reverses image horizontally
- Changed USB control transaction fields to match Windows driver
- New decompression module locking (decomp_ops->owner), per Greg's advice
- EXPORT_SYMBOL_NOVERS => EXPORT_SYMBOL
- New devices: Lifeview USB Live TV PAL/SECAM and PAL D/K+B/G
- Disabled buf_timeout feature. It was calling vfree() in interrupt
context, which is illegal. Memory is deallocated immediately on close().
- Most sensors thought to be OV7620AE were actually OV76BE. Changed code
to reflect this, and emit a warning if an OV7620AE is encountered.
- Miscellaneous cleanups and bug fixes
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.