salinfo automatically processes all record types on all cpus at boot
time, ia64_mca_check_errors is now redundant. This also removes the
need for a called_from_init flag on ia64_mca_log_sal_error_record.
Martin Hicks [Wed, 11 Feb 2004 07:52:06 +0000 (23:52 -0800)]
[PATCH] ia64: don't call note_interrupt() for per-CPU irqs
The note_interrupt() code is racy for per-CPU irqs and causes severe
performance problems due to cache-line bouncing on large SMPs. Just don't
call it for that case.
Keith Owens [Tue, 10 Feb 2004 06:11:17 +0000 (22:11 -0800)]
[PATCH] ia64: Avoid deadlock when using printk() for MCA and INIT records
Port the ia64 mca.c clean up patches from 2.4.25-pre8 to 2.6.2-rc2.
The following 6 patches do :-
1 Avoid deadlock when using printk() for MCA and INIT records.
2 Delete all record printing code, moved to salinfo_decode in user space.
3 Mark variables and functions static where possible.
4 Delete dead variables and functions.
5 Reorder to remove the need for forward declarations and to consolidate
related code.
6 Bjorn's printk cleanup.
Altogether they shrink mca.c from 2432 to 1339 lines and make it much
more readable.
The only functional change is the removal of any attempt to print the
CMC/CPE/MCA/INIT record contents in the kernel plus the addition of an
info printk to ia64_mca_check_errors(), to match 2.4. Now we just get
one line to say that a record has been detected, except for MCA which
prints nothing at all.
Alex Williamson [Tue, 10 Feb 2004 05:45:36 +0000 (21:45 -0800)]
[PATCH] ia64: sba_iommu perf tunning and new functionality
I've been doing some performance tuning and adding some functionality
to sba_iommu for zx1/sx1000 chipsets. This adds:
* Long overdue consistent_dma_mask support
* Long overdue ability to do large mappings in the iommu
* Tightened spinlock usage for better performance/scalability
* Added branch prediction hints for some of the performance paths
* Added explicit data prefetching to some performance paths -
perfmon shows roughly a 20% decrease in L3 misses in the bitmap
search code
* Increased delayed resource freeing depth and added a separate
lock per ioc to avoid contention
* Added code to free up queued pdir entries should we be unable to
find space for new ones (not that I've ever seen the pdir
anywhere close to full)
* Finished cleaning out the hint support code, Grant is
maintaining this separately for now
* Added option to control bypass of sg mappings separately from
single/coherent mappings
Much like the swiotlb, sba_iommu allows devices capable of 64bit
addressing to bypass the iommu and DMA directly to/from memory. Using a
worst case scenario test (64bit bypass disabled, all DMA mapped through
the iommu), I saw a 60% increase in sequential block input throughput
using bonnie++ on a large RAID0 MD array. In fact, this patch provides
the best bonnie++ performance with bypass disabled. This is likely due
to benefits seen from coalescing the scatterlist, allowing better disk
streaming. I assume that network performance will likely be limited by
mapping latency, so I added the last bullet item to allow sg mappings to
get the benefit of coalescing while keeping a low latency path for
single and coherent mappings. If anyone is setup for network
benchmarks, I'd be interested in a before and after with this patch.
Kenneth W. Chen [Tue, 10 Feb 2004 04:55:53 +0000 (20:55 -0800)]
[PATCH] ia64: fix ld.a emulation
This patch fixes a corner-case of ld.a emulation. ld.a should be
emulated such that it always loads a misaligned value and clears the
corresponding ALAT entry. The old emulation was correct for the case
where ld.a was followed by ld.c/chk.a (since ALAT entry was cleared),
but wrong for the case where it _wasn't_ followed by ld.c/chk.a. In
that case, the misaligned value wasn't read from memory, as it should
have been.
Joe Thornber [Tue, 10 Feb 2004 01:24:56 +0000 (17:24 -0800)]
[PATCH] dm: block size bug with 64 bit devs
With 32 bit sector_t the block device size _in bytes_ is also cut to
32 bit in __set_size when the block device is mount (a filesystem
mounted). The argument should be cast to loff_t before expanding the
sector count to a byte count and calling i_size_write.
Jens Axboe [Tue, 10 Feb 2004 00:45:59 +0000 (16:45 -0800)]
[PATCH] DVD-R capability flag set incorrectly, /proc formatting fix
From John McKell <mckellj@iomega.com>:
This patch for scsi/sr.c and cdrom/cdrom.c persuades
/proc/sys/dev/cdrom/info to report that connecting a drive via USB
rather than ATAPI in fact does not make it able to write DVD-R.
Without this patch, when sr0 and hdd are the same type of device
connected via USB and ATAPI respectively, I see:
$ cat /proc/sys/dev/cdrom/info:
drive name: sr1 sr0 hdd
...
Can write CD-R: 1 0 0
Can write CD-RW: 1 0 0
Can read DVD: 0 0 0
Can write DVD-R: 1 1 0
Can write DVD-RAM: 0 0 0
Can read MRW: 0 0 0
Can write MRW: 0 0 0
With this patch applied, instead I see:
$ cat /proc/sys/dev/cdrom/info:
drive name: sr1 sr0 hdd
...
Can write CD-R: 1 0 0
Can write CD-RW: 1 0 0
Can read DVD: 0 0 0
Can write DVD-R: 0 0 0
Can write DVD-RAM: 0 0 0
Can read MRW: 0 0 0
Can write MRW: 0 0 0
The sr1 device in particular is an ordinary CD-RW that in fact cannot
write DVD-R.
While messing with this code, I also thought to tweak the /proc
formatting to align the tabbed columns.
Here's a new version of the patch according to our discussion.
This allows the platform to add its own platform files to the
sysfs PCI device node through a "pcibios_add_platform_entries()"
call.
I added an empty pcibios_add_platform_entries() inline to all
archs that apparently have PCI and implemented the OF stuff for
ppc and ppc64. The name is still "devspec" for now, I doubt
it will conflict and that's consistent with our use of the
"devspec" name in other places.
Andrew Morton [Mon, 9 Feb 2004 10:58:33 +0000 (02:58 -0800)]
[PATCH] getxattr error checking fix
From: Nathan Scott <nathans@sgi.com>,
Andreas Gruenbacher <agruen@suse.de>
XFS regression tests tripped a couple of problems with the recent xattr fix.
When a size of 0 is passed in, the getxattr and listxattr syscalls return the
size that would be required for the value or list of names, without actually
returning the value. The previous patch accidentally removed this test, and
so querying the required size broke.
Andrew Morton [Mon, 9 Feb 2004 10:58:23 +0000 (02:58 -0800)]
[PATCH] Remove duplicated HPPA bits in kernel/sysctl.c
From: "Art Haas" <ahaas@airmail.net>
The following patch removes the duplicated sysctl entries for 'soft-power'
and 'unaligned-trap' for HPPA users. Immediately before these lines these
two entries exist in a C99-style format.
Jean Tourrilhes [Mon, 9 Feb 2004 10:35:34 +0000 (02:35 -0800)]
[IRDA]: Ultra sendto support.
<Original patch from Stephen Hemminger>
o [CORRECT] Always initialise Ultra packet/header size.
o [CORRECT] Don't allow Ultra send on unbound sockets if no
dest address is given.
o [FEATURE] Properly support Ultra sendto on unbound sockets.
Jean Delvare [Mon, 9 Feb 2004 05:18:09 +0000 (21:18 -0800)]
[PATCH] I2C: add new chip driver: fscher
This is a new ported driver, fscher, which supports the FSC Hermes chip.
The original driver was written by Reinhard Nissl, who also ported it to
Linux 2.6, as discussed on the lm_sensors mailing list during the last
two weeks. I reviewed the code and we made the necessary changes, so
that what we have now looks good to me. Please apply on top of your i2c
patches stack.
Alan Stern [Mon, 9 Feb 2004 04:17:18 +0000 (20:17 -0800)]
[PATCH] USB: fix unneeded SubClass entry in unusual_devs.h
On Sat, 7 Feb 2004, Brendan Arthurs wrote:
> I'm getting the following message when I power on my USB external
> enclosure (a MAP-K51U) with a Maxtor IDE hard drive in it. I'm running
> kernel 2.6.2. Hope this is of some use to you.
>
> Feb 7 11:03:13 europa kernel: hub 4-0:1.0: new USB device on port 2,
> assigned address 2
> Feb 7 11:03:13 europa kernel: usb 4-2: Product: USB Mass Storage
> Device
> Feb 7 11:03:13 europa kernel: usb 4-2: Manufacturer: Genesyslogic
> Feb 7 11:03:13 europa kernel: usb-storage: This device
> (05e3,0701,0002 S 06 P 50) has an unneeded SubClass entry in
> unusual_devs.h
> Feb 7 11:03:13 europa kernel: Please send a copy of this message
> to <linux-usb-devel@lists.sourceforge.net>
Thank you for sending this in. Here's a patch to take care of it.
Alexander, does this work for you?
David Brownell [Mon, 9 Feb 2004 04:16:07 +0000 (20:16 -0800)]
[PATCH] USB: re-factor enumeration/reset paths
This patch starts dis-entangling some of the enumeration logic by
moving initialization code into the usb_alloc_dev() constructor.
Some call signatures changed; a usbcore-internal declaration was
moved in <linux/usb.h> to a more appropriate location.
With the driver model init now more centralized, it's safer to
use driver model calls (including dev_info) a lot earlier, so
the "new device at address N" message now does that. It also
reports the device speed, which may not be evident otherwise.
PC300 MLPPP support is currently marked broken in 2.6.x.
To fix that, attached patch implements tiocmset/tiocmget methods on the
pc300_tty.c driver, which is the new method tty drivers are supposed to
use instead ioctl.
This fixes two related issues in the ioctl handler:
- ioctl requesting RTS signal would affect DTR signal
- The RTS signal is now handled.
[PATCH] fix OOPS for multiple IDE PCI modules and CONFIG_PROC_FS=y
The problem is that when loading next IDE PCI module memory used by
previously registered ide_pci_host_proc_list entry is already unmapped
(because of __{dev}initdata). This doesn't happen in built-in case
because this memory is freed after all drivers are initialized.
Fix it by removing __{dev}initdata from all ide_pci_host_proc_t.
Thanks to Andre Tomt <andre@tomt.net> for help in debugging this.