GitHub/LineageOS/android_kernel_samsung_universal7580.git
19 years ago[SCSI] allow sleeping in ->eh_host_reset_handler()
Jeff Garzik [Sat, 28 May 2005 11:57:14 +0000 (07:57 -0400)]
[SCSI] allow sleeping in ->eh_host_reset_handler()

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] allow sleeping in ->eh_bus_reset_handler()
Jeff Garzik [Sat, 28 May 2005 11:56:31 +0000 (07:56 -0400)]
[SCSI] allow sleeping in ->eh_bus_reset_handler()

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] allow sleeping in ->eh_device_reset_handler()
Jeff Garzik [Sat, 28 May 2005 11:55:48 +0000 (07:55 -0400)]
[SCSI] allow sleeping in ->eh_device_reset_handler()

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] allow sleeping in ->eh_abort_handler()
Jeff Garzik [Sat, 28 May 2005 11:54:40 +0000 (07:54 -0400)]
[SCSI] allow sleeping in ->eh_abort_handler()

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] Remove no-op implementations of SCSI EH hooks
Jeff Garzik [Sat, 28 May 2005 11:52:51 +0000 (07:52 -0400)]
[SCSI] Remove no-op implementations of SCSI EH hooks

Drivers need not implement a hook that returns FAILED, and does nothing
else, since the SCSI midlayer code will do that for us.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] Remove unnecessary locking around completion function calls
Jeff Garzik [Sat, 28 May 2005 11:47:39 +0000 (07:47 -0400)]
[SCSI] Remove unnecessary locking around completion function calls

The SCSI ->done() hook should not be called from inside a spinlock.

Drivers that do this are mostly cut-n-paste from 2.2.x-era.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] aic7xxx: fix the BIOS limits setting routines
James Bottomley [Tue, 14 Jun 2005 01:58:56 +0000 (20:58 -0500)]
[SCSI] aic7xxx: fix the BIOS limits setting routines

Following the go around over the SONY DVD that needs artificial limits,
this should be the correct code for all cases (minus the debugging
prints).

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] zfcp: fix handling of port boxed and lun boxed fsf states
Andreas Herrmann [Mon, 13 Jun 2005 11:23:57 +0000 (13:23 +0200)]
[SCSI] zfcp: fix handling of port boxed and lun boxed fsf states

From: Maxim Shchetynin <maxim@de.ibm.com>

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] zfcp: fix module parameter parsing
Andreas Herrmann [Mon, 13 Jun 2005 11:22:25 +0000 (13:22 +0200)]
[SCSI] zfcp: fix module parameter parsing

From: Heiko Carstens <heiko.carstens@de.ibm.com>

Fixes module parameter parsing for "device" parameter.  The original
module parameter was changed while parsing it.  This corrupted the
output in sysfs (/sys/module/zfcp/parameters/device).

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] zfcp: fix bug during adapter shutdown
Andreas Herrmann [Mon, 13 Jun 2005 11:20:35 +0000 (13:20 +0200)]
[SCSI] zfcp: fix bug during adapter shutdown

Fixes a race between zfcp_fsf_req_dismiss_all and
zfcp_qdio_reqid_check. During adapter shutdown it occurred that a
request was cleaned up twice. First during its normal
completion. Second when dismiss_all was called.  The fix is to
serialize access to fsf request list between zfcp_fsf_req_dismiss_all
and zfcp_qdio_reqid_check and delete a fsf request from the list if
its completion is triggered.  (Additionally a rwlock was replaced by a
spinlock and fsf_req_cleanup was eliminated.)

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] zfcp: fix: problem in send_els_handler when D_ID assignment changes
Andreas Herrmann [Mon, 13 Jun 2005 11:18:56 +0000 (13:18 +0200)]
[SCSI] zfcp: fix: problem in send_els_handler when D_ID assignment changes

From: Maxim Shchetynin <maxim@de.ibm.com>

Fixes a bug in zfcp_send_els_handler.  If D_ID assignments for ports
are changing between initiation of one ELS request and its completion
the wrong port might be accessed in the completion for that ELS
request. Thus a pointer to the port has to be passed for ELS requests
to identify the port structure if required.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] zfcp: fix: mark fsf request failed when receiving unknown status qualifier
Andreas Herrmann [Mon, 13 Jun 2005 11:17:44 +0000 (13:17 +0200)]
[SCSI] zfcp: fix: mark fsf request failed when receiving unknown status qualifier

From: Maxim Shchetynin <maxim@de.ibm.com>

Correct a bug in zfcp_fsf_send_fcp_command_handler.  An fsf request
was not marked as failed if an unknown status qualifier was returned.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] zfcp: fix: reopen port only if link-test fails
Andreas Herrmann [Mon, 13 Jun 2005 11:16:27 +0000 (13:16 +0200)]
[SCSI] zfcp: fix: reopen port only if link-test fails

From: Maxim Shchetynin <maxim@de.ibm.com>

Reopen a remote port only if the link-test fails. This avoids that a
port is unnecessarily reopened.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] zfcp: fix: allow more time for adapter initialization
Andreas Herrmann [Mon, 13 Jun 2005 11:15:15 +0000 (13:15 +0200)]
[SCSI] zfcp: fix: allow more time for adapter initialization

From: Maxim Shchetynin <maxim@de.ibm.com>

Extend the time for adapter initialization: In case of protocol
status HOST_CONNECTION_INITIALIZING for the exchange config data
command do a first retry in 1 second, then double the sleep time for
each following retry until recovery exceeds 2 minutes. The old
behaviour of allowing 6 retries with .5 seconds delay between retries
was insufficient and qdio queues were shut down too erarly.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] zfcp: fix wrong handling of failed requests for GID_PN command
Andreas Herrmann [Mon, 13 Jun 2005 11:13:45 +0000 (13:13 +0200)]
[SCSI] zfcp: fix wrong handling of failed requests for GID_PN command

Fixes the handling of failed requests for GID_PN nameserver command:
Set ZFCP_STATUS_PORT_INVALID_WWPN only if indicated by response
payload for GID_PN nameserver command and not if fsf request fails.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] aic7xxx: clean up eisa support
Christoph Hellwig [Fri, 10 Jun 2005 22:17:03 +0000 (00:17 +0200)]
[SCSI] aic7xxx: clean up eisa support

 - the eisa layer only probes when it's actually safe, no need for
   a driver option
 - store the id table directly in linux format instead of convering
   at runtime

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] aic7xxx: remove some dead wood
Christoph Hellwig [Fri, 10 Jun 2005 22:13:30 +0000 (00:13 +0200)]
[SCSI] aic7xxx: remove some dead wood

especially the now dead scsi_cmnd overlay

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] aic7xxx: remove ahc_find_softc
Christoph Hellwig [Fri, 10 Jun 2005 22:14:30 +0000 (00:14 +0200)]
[SCSI] aic7xxx: remove ahc_find_softc

there's absolutely no reason not to trust the driver private data

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] zfcp: remove flags_dump feature
Andreas Herrmann [Fri, 10 Jun 2005 08:16:33 +0000 (10:16 +0200)]
[SCSI] zfcp: remove flags_dump feature

Removes the rarely used "flags_dump" mechanism of zfcp.

Equivalent debug information will be provided with a reworking of
zfcp's s390dbf-facilities which is in preparation.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] cciss 2.6 DMA mapping
mike.miller@hp.com [Fri, 10 Jun 2005 19:51:04 +0000 (14:51 -0500)]
[SCSI] cciss 2.6 DMA mapping

Patch removes our homegrown DMA masks and uses the ones defined in the kernel.
This patch replaces the broken one I sent in earlier. It has been tested and works. Please discard the first submission.

Signed-off-by: Mike Miller <mike.miller@hp.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] aic7xxx: do not check for duplicate pci ids
Christoph Hellwig [Fri, 10 Jun 2005 22:15:31 +0000 (00:15 +0200)]
[SCSI] aic7xxx: do not check for duplicate pci ids

pci layer handles this just fine for us

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] aic7xxx/aic79xx: remove useless byte order macro cruft
Christoph Hellwig [Fri, 10 Jun 2005 22:26:00 +0000 (00:26 +0200)]
[SCSI] aic7xxx/aic79xx: remove useless byte order macro cruft

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] 2.6 aacraid: updated sysfs files
Mark Haverkamp [Wed, 1 Jun 2005 17:24:38 +0000 (10:24 -0700)]
[SCSI] 2.6 aacraid: updated sysfs files

This patch adds some files into the /sys/class/scsi_host/hostN
directories for aacraid adapters:

model
vendor
hba_kernel_version
hba_monitor_version
hba_bios_version
serial_number

Signed-off-by: Mark Haverkamp <markh@osdl.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] update spi transport class so that u320 Domain Validation works
James Bottomley [Tue, 31 May 2005 23:35:39 +0000 (18:35 -0500)]
[SCSI] update spi transport class so that u320 Domain Validation works

There are several extra things that have to be considered when running
Domain Validation on a u320 target (notably how you fall back).

Hopefully this should help us when someone adds this transport class to
aic79xx.

I've tested this on the lsi1030, so I know it works correctly up to
u320.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] fix aic7xxx coupled parameter problem
James Bottomley [Fri, 3 Jun 2005 14:49:01 +0000 (09:49 -0500)]
[SCSI] fix aic7xxx coupled parameter problem

For setting coupled parameters, we need to be comparing against the goal
settings, not the current ones.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] sg: Command completion after remove oops
brking@us.ibm.com [Tue, 24 May 2005 14:49:59 +0000 (09:49 -0500)]
[SCSI] sg: Command completion after remove oops

A problem exists todayin the sg driver that if an SG_IO request is
outstanding to a device when it is removed from the system. The
system may oops if that command completes later in time.

1. sg_remove gets called
2. sg_remove calls sg_finish_req_req on all pending requests
   This removes the Sg_request's from the headrp list in the Sg_fd
3. The sleeping SG_IO ioctl is woken. It does nothing and returns.
4. The caller closes the fd, which invokes sg_release
5. sg_release calls sg_remove_sfp. It finds no outstanding commands
   since the headrp list is empty, so it calls __sg_remove_sfp,
   which frees the sfp.
6. Now when sg_cmd_done gets called, sg uses upper_private_data in
   the Scsi_Request, which should point to the srp, which has been
   freed, so it points to freed memory.
7. sg then dereferences the srp pointer to get the sfp, and we oops.

The fix is to NULL out the upper_private_data field in this path,
which sg_cmd_done already checks for, which will prevent the oops
from occurring.

cpu 0x1: Vector: 300 (Data Access) at [c00000000fff7aa0]
    pc: d0000000002bbea8: .sg_cmd_done+0x70/0x394 [sg]
    lr: d000000000073304: .scsi_finish_command+0x10c/0x130 [scsi_mod]
    sp: c00000000fff7d20
   msr: 8000000000009032
   dar: 2f70726f63202f78
 dsisr: 40000000
  current = 0xc0000000024589b0
  paca    = 0xc0000000003da800
    pid   = 7, comm = events/1
[c00000000fff7dc0d000000000073304 .scsi_finish_command+0x10c/0x130 [scsi_mod]
[c00000000fff7e50d00000000007317c .scsi_softirq+0x140/0x168 [scsi_mod]
[c00000000fff7ef0c0000000000634dc .__do_softirq+0xa0/0x17c
[c00000000fff7f90c000000000018430 .call_do_softirq+0x14/0x24
[c00000000ed472e0c0000000000142e0 .do_softirq+0x74/0x9c
[c00000000ed47370c000000000013c9c .do_IRQ+0xe8/0x100
[c00000000ed473f0c00000000000ae34 HardwareInterrupt_entry+0x8/0x54

c00000000003df28 .smp_call_function+0
x100/0x1d0
[c00000000ed47780c0000000000ba99c .invalidate_bh_lrus+0x30/0x70
[c00000000ed47810c0000000000b91a0 .invalidate_bdev+0x18/0x3c
[c00000000ed478a0c0000000000da7b8 .__invalidate_device+0x70/0x94
[c00000000ed47930c0000000001d40bc .invalidate_partition+0x4c/0x7c
[c00000000ed479c0c00000000010a944 .del_gendisk+0x48/0x15c
[c00000000ed47a50d00000000003d55c .sd_remove+0x34/0xe4 [sd_mod]
[c00000000ed47ae0c0000000001c5d30 .device_release_driver+0x90/0xb4
[c00000000ed47b70c0000000001c6130 .bus_remove_device+0xb0/0x12c
[c00000000ed47c00c0000000001c4378 .device_del+0x120/0x198
[c00000000ed47ca0d00000000007dcdc .scsi_remove_device+0xb4/0x194 [scsi_mod]
[c00000000ed47d30d0000000000a5864 .ipr_worker_thread+0x1d4/0x27c [ipr]
[c00000000ed47dd0c0000000000734c4 .worker_thread+0x238/0x2f4
[c00000000ed47ee0c0000000000796c0 .kthread+0xcc/0x11c
[c00000000ed47f90c000000000018ad0 .kernel_thread+0x4c/0x6c

Signed-off-by: Brian King <brking@us.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] aic7xxx: remove separate target and device allocations
James Bottomley [Tue, 24 May 2005 22:15:43 +0000 (17:15 -0500)]
[SCSI] aic7xxx: remove separate target and device allocations

Since the aic driver is now taught to speak in terms of the generic
linux devices, we can now also dispense with the transport class get
routines (since we update the parameters when the driver sees they
change) and also plumb it into the spi transport transfer agreement
reporting infrastructure.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years agoAutomatic merge of ../scsi-misc-2.6-old/
James Bottomley [Thu, 26 May 2005 18:14:55 +0000 (14:14 -0400)]
Automatic merge of ../scsi-misc-2.6-old/

19 years agoMerge of 'misc-fixes' branch from
Linus Torvalds [Thu, 26 May 2005 17:02:30 +0000 (10:02 -0700)]
Merge of 'misc-fixes' branch from

rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev

19 years ago[SCSI] allow the HBA to reserve target and device private areas
James Bottomley [Tue, 24 May 2005 21:57:31 +0000 (16:57 -0500)]
[SCSI] allow the HBA to reserve target and device private areas

This patch basically allows any HBA attached to the SPI transport class
to declare an extra area which the mid-layer will allocate as part of
its device and target allocations.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] git-scsi-misc-sbp2-warning-fix
Andrew Morton [Tue, 24 May 2005 09:05:24 +0000 (02:05 -0700)]
[SCSI] git-scsi-misc-sbp2-warning-fix

drivers/ieee1394/sbp2.c: In function `sbp2_check_sbp2_response':
drivers/ieee1394/sbp2.c:2154: warning: unused variable `device_type'

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] Add target alloc/destroy callbacks to the host template
James Bottomley [Tue, 24 May 2005 17:06:38 +0000 (12:06 -0500)]
[SCSI] Add target alloc/destroy callbacks to the host template

This gives the HBA driver notice when a target is created and
destroyed to allow it to manage its own target based allocations
accordingly.

This is a much reduced verson of the original patch sent in by
James.Smart@Emulex.com

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[PATCH] timeout at boottime with NEC3500A (and possibly others) when inserted a CD...
Marcello Maggioni [Thu, 26 May 2005 13:47:35 +0000 (15:47 +0200)]
[PATCH] timeout at boottime with NEC3500A (and possibly others) when inserted a CD in it

From: Marcello Maggioni <hayarms@gmail.com>

Problem: Some drives (NEC 3500, TDK 1616N, Mad-dog MD-16XDVD9, RICOH
MP5163DA, Memorex DVD9 drive and IO-DATA's too for sure), if a
CD/DVD is inserted into the tray when the system is booted and if
before the OS bootup the BIOS checked for the presence of a bootable
CD/DVD into the drive, during the IDE probe phase the drive may
result busy and remain so for the next 25/30 seconds . This cause the
drive to be skipped during the booting phase and not begin usable
until the next reboot (if the reboot goes well and the drive doesn't
timeout again).

Solution: Rising the timeout time from 10 seconds to 35 seconds
(during these 35 seconds every drive should wake up for sure
according to the tests I've done).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
19 years ago[SCSI] TYPE_RBC cache fixes (sbp2.c affected)
Al Viro [Mon, 16 May 2005 00:59:55 +0000 (01:59 +0100)]
[SCSI] TYPE_RBC cache fixes (sbp2.c affected)

a) TYPE_SDAD renamed to TYPE_RBC and taken to scsi.h
b) in sbp2.c remapping of TYPE_RPB to TYPE_DISK turned off
c) relevant places in midlayer and sd.c taught to accept TYPE_RBC
d) sd.c::sd_read_cache_type() looks into page 6 when dealing with
TYPE_RBC - these guys have writeback cache flag there and are not guaranteed
to have page 8 at all.
e) sd_read_cache_type() got an extra sanity check - it checks that
it got the page it asked for before using its contents.  And screams if
mismatch had happened.  Rationale: there are broken devices out there that
are "helpful" enough to go for "I don't have a page you've asked for, here,
have another one".  For example, PL3507 had been caught doing just that...
f) sbp2 sets sdev->use_10_for_rw and sdev->use_10_for_ms instead
of bothering to remap READ6/WRITE6/MOD_SENSE, so most of the conversions
in there are gone now.

Incidentally, I wonder if USB storage devices that have no
mode page 8 are simply RBC ones.  I haven't touched that, but it might
be interesting to check...

Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[SCSI] sym2 version 2.2.1
Matthew Wilcox [Fri, 20 May 2005 18:15:43 +0000 (19:15 +0100)]
[SCSI] sym2 version 2.2.1

sym2 version 2.2.1:
 - Fix MMIO BAR detection (Thanks to Bob Picco)
 - Fix odd-sized transfers with a wide bus (Thanks to Larry Stephens)
 - Write posting fixes (Thanks to Thibaut Varene)
 - Change one of the GFP_KERNEL allocations back into a GFP_ATOMIC
 - Make CCB_BA() return a script-endian address
 - Move range checks and disabling of devices from the queuecommand path
   to slave_alloc()
 - Remove a warning in sym_setup_cdb()
 - Keep a pointer to the scsi_target instead of the scsi_dev in the tcb
 - Remove a check for the upper layers passing an oversized cmd
 - Replace CAM_REQ_ constants with the Linux DID_ constants
 - Replace CAM_DIR_ constants with the Linux DMA_ constants
 - Inline sym_read_parisc_pdc() on non-parisc systems

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
19 years ago[PATCH] ide-scsi: kmap scatter/gather before doing PIO
Stuart Hayes [Thu, 26 May 2005 13:38:45 +0000 (15:38 +0200)]
[PATCH] ide-scsi: kmap scatter/gather before doing PIO

From: Stuart Hayes <Stuart_Hayes@dell.com>

The system can panic with a null pointer dereference using ide-scsi if
PIO is being done on scatter gather pages that are in high memory,
because page_address() returns 0.  We are actually seeing this using a
tape drive.  This patch will kmap_atomic() the pages before performing
PIO.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
19 years ago[PATCH] convert IDE device drivers to driver-model
Bartlomiej Zolnierkiewicz [Thu, 26 May 2005 12:55:34 +0000 (14:55 +0200)]
[PATCH] convert IDE device drivers to driver-model

* add ide_bus_match() and export ide_bus_type
* split ide_remove_driver_from_hwgroup() out of ide_unregister()
* move device cleanup from ide_unregister() to drive_release_dev()
* convert ide_driver_t->name to driver->name
* convert ide_driver_t->{attach,cleanup} to driver->{probe,remove}
* remove ide_driver_t->busy as ide_bus_type->subsys.rwsem
  protects against concurrent ->{probe,remove} calls
* make ide_{un}register_driver() void as it cannot fail now
* use driver_{un}register() directly, remove ide_{un}register_driver()
* use device_register() instead of ata_attach(), remove ata_attach()
* add proc_print_driver() and ide_drivers_show(), remove ide_drivers_op
* fix ide_replace_subdriver() and move it to ide-proc.c
* remove ide_driver_t->drives, ide_drives and drives_lock
* remove ide_driver_t->drivers, drivers and drivers_lock
* remove ide_drive_t->driver and DRIVER() macro

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
19 years ago[PATCH] libata: Fix zero sg_dma_len() on 64-bit platform
Albert Lee [Thu, 26 May 2005 07:49:42 +0000 (03:49 -0400)]
[PATCH] libata: Fix zero sg_dma_len() on 64-bit platform

When testing ATAPI PIO data transfer on the ppc64 platform,  __atapi_pio_bytes() got zero when
sg_dma_len() is used. I checked the <asm-ppc64/scatterlish.h>, the struct scatterlist is defined as:

struct scatterlist {
struct page *page;
unsigned int offset;
unsigned int length;

/* For TCE support */
u32 dma_address;
u32 dma_length;
};

#define sg_dma_address(sg) ((sg)->dma_address)
#define sg_dma_len(sg) ((sg)->dma_length)

So, if the scatterlist is not DMA mapped, sg_dma_len() will return zero on ppc64.
The same problem should occur on the x86-64 platform.
On the i386 platform, sg_dma_len() returns sg->length, that's why the problem does not occur on an i386.

Changes:
- Use sg->length if the scatterlist is not DMA mapped (yet).

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
19 years agoMerge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Thu, 26 May 2005 01:01:26 +0000 (18:01 -0700)]
Merge ... /linux/kernel/git/davem/sparc-2.6

19 years agoMerge of 'new-ids' branch from
Linus Torvalds [Thu, 26 May 2005 00:56:57 +0000 (17:56 -0700)]
Merge of 'new-ids' branch from

rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev

19 years ago[PATCH] sata_promise: add PCI ID for FastTrak TX2200 2-ports
Francisco Javier [Wed, 25 May 2005 23:29:37 +0000 (19:29 -0400)]
[PATCH] sata_promise: add PCI ID for FastTrak TX2200 2-ports

19 years ago[PATCH] sata_sil: new ID 1002:437A for ATI IXP400
NAKAMURA Kenta [Wed, 25 May 2005 23:28:38 +0000 (19:28 -0400)]
[PATCH] sata_sil: new ID 1002:437A for ATI IXP400

19 years ago[PATCH] therm_adt746x: show correct sensor locations
Colin Leroy [Wed, 25 May 2005 19:31:35 +0000 (12:31 -0700)]
[PATCH] therm_adt746x: show correct sensor locations

This patch shows the correct locations of the heat sensors present in iBook
and PowerBooks G4, instead of displaying them as being on CPU and GPU
(which is not always the case).

Signed-off-by: Colin Leroy <colin@colino.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Make sure therm_adt746x only handles known hardware
Colin Leroy [Wed, 25 May 2005 19:31:34 +0000 (12:31 -0700)]
[PATCH] Make sure therm_adt746x only handles known hardware

This patch limits therm_adt746x to currently existing fan controllers in
Apple laptops.  It may avoid problems with future hardware.

Signed-off-by: Colin Leroy <colin@colino.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] IB: fix endianness of path record MTU field
Roland Dreier [Wed, 25 May 2005 19:31:31 +0000 (12:31 -0700)]
[PATCH] IB: fix endianness of path record MTU field

Make MTU field in SA PathRecord and MCMemberRecord a u8 rather than an enum
to avoid complications with endianness.

Signed-off-by: Roland Dreier <roland@topspin.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] IB: fix potential ib_umad leak
Roland Dreier [Wed, 25 May 2005 19:31:30 +0000 (12:31 -0700)]
[PATCH] IB: fix potential ib_umad leak

Free all unclaimed MAD receive buffers when userspace closes our file so we
don't leak memory.

Signed-off-by: Roland Dreier <roland@topspin.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] IB: allow NULL sa_query callbacks
Roland Dreier [Wed, 25 May 2005 19:31:29 +0000 (12:31 -0700)]
[PATCH] IB: allow NULL sa_query callbacks

Check if a client passes a NULL callback into an SA query, and if so, never
call back.  This fixes an oops if someone unloads ib_ipoib and ib_sa in
rapid succession.  ib_ipoib does an MCMember delete with a NULL callback
and 0 timeout on unload, which is usually fine since the delete completes
successfully.  However, if ib_sa is unloaded immediately afterwards, the
delete will be canceled and ib_sa will try to call the (now already
unloaded) ib_ipoib module back with the cancel completion, which triggers
the oops.

Signed-off-by: Roland Dreier <roland@topspin.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: CONFIG_BUG=n fixes
Alexander Nyberg [Wed, 25 May 2005 19:31:28 +0000 (12:31 -0700)]
[PATCH] x86_64: CONFIG_BUG=n fixes

Fixes some !CONFIG_BUG warnings:
include/asm/mmu_context.h: I funktion `switch_mm':
include/asm/mmu_context.h:57: varning: implicit declaration of function `out_of_line_bug'

Signed-off-by: Alexander Nyberg <alexn@telia.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ipmi build fix
Neil Horman [Wed, 25 May 2005 19:31:27 +0000 (12:31 -0700)]
[PATCH] ipmi build fix

It looks like the recent IPMI patches had some -mm-onlyisms.

Signed-off-by: Neil Horman <nhorman@redhat.com>
Cc: Corey Minyard <minyard@acm.org>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] v4l: bttv i2c oops fix
Gerd Knorr [Wed, 25 May 2005 19:31:26 +0000 (12:31 -0700)]
[PATCH] v4l: bttv i2c oops fix

Don't try to access the i2c bus if the register wasn't successful.

Signed-off-by: Gerd Knorr <kraxel@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoMerge of /home/davem/src/GIT/linux-2.6/.git/
David S. Miller [Wed, 25 May 2005 21:58:04 +0000 (14:58 -0700)]
Merge of /home/davem/src/GIT/linux-2.6/.git/

19 years agoMerge of 'for-linus' branch from
Linus Torvalds [Wed, 25 May 2005 21:01:50 +0000 (14:01 -0700)]
Merge of 'for-linus' branch from

rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzik/netdev-2.6

19 years agoAutomatic merge of /spare/repo/netdev-2.6 branch amd8111
<jgarzik@pretzel.yyz.us> [Wed, 25 May 2005 17:57:36 +0000 (13:57 -0400)]
Merge ... /spare/repo/netdev-2.6 branch amd8111

19 years agoAutomatic merge of /spare/repo/netdev-2.6 branch pcnet32
<jgarzik@pretzel.yyz.us> [Wed, 25 May 2005 17:57:25 +0000 (13:57 -0400)]
Merge ... /spare/repo/netdev-2.6 branch pcnet32

19 years agoAutomatic merge of /spare/repo/netdev-2.6 branch ixgb
<jgarzik@pretzel.yyz.us> [Wed, 25 May 2005 17:57:15 +0000 (13:57 -0400)]
Merge ... /spare/repo/netdev-2.6 branch ixgb

19 years agoAutomatic merge of /spare/repo/netdev-2.6 branch e1000
<jgarzik@pretzel.yyz.us> [Wed, 25 May 2005 17:57:03 +0000 (13:57 -0400)]
Merge ... /spare/repo/netdev-2.6 branch e1000

19 years agoAutomatic merge of /spare/repo/netdev-2.6 branch e100
<jgarzik@pretzel.yyz.us> [Wed, 25 May 2005 17:56:55 +0000 (13:56 -0400)]
Merge ... /spare/repo/netdev-2.6 branch e100

19 years agoMerge of /spare/repo/netdev-2.6 branch misc-fixes
<jgarzik@pretzel.yyz.us> [Wed, 25 May 2005 17:56:22 +0000 (13:56 -0400)]
Merge of /spare/repo/netdev-2.6 branch misc-fixes

19 years ago[PATCH] relax ide-cd dma restrictions
Jens Axboe [Wed, 25 May 2005 15:00:15 +0000 (17:00 +0200)]
[PATCH] relax ide-cd dma restrictions

This has been sitting for a while, and is causing lots of grief for
people burning CDs.  It relaxes the dma restriction for ide-cd,
requiring only the length to be 32-byte aligned, address should be fine
at normal double word alignment.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Speedtouch resync after lost signal.
David Woodhouse [Wed, 25 May 2005 08:49:13 +0000 (09:49 +0100)]
[PATCH] Speedtouch resync after lost signal.

There's a bigger Speedtouch update coming your way after 2.6.12 but in
the meantime, let's at least make it automatically resync if the DSL
signal is lost.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ppc64 iSeries: fix boot time setting
Stephen Rothwell [Wed, 25 May 2005 06:29:26 +0000 (16:29 +1000)]
[PATCH] ppc64 iSeries: fix boot time setting

For quite a while, there has existed a hypervisor bug on legacy iSeries
which means that we do not get the boot time set in the kernel.  This
patch works around that bug.  This was most noticable when the root
partition needed to be checked at every boot as the kernel thought it
was some time in 1905 until user mode reset the time correctly.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ppc64: fix initialisation of gettimeofday calculations
Stephen Rothwell [Wed, 25 May 2005 03:41:26 +0000 (13:41 +1000)]
[PATCH] ppc64: fix initialisation of gettimeofday calculations

On PPC64, we keep track of when we need to update jiffies (and the
variables used to calculate the time of day) based on the time base.

If the time base frequence is sufficiently high compared to the
processor clock frequency, then it is possible for the time of day
variables to be corrupted at the time of the first decrementer interrupt
we take.  This became obvious on a legacy iSeries where the time base
frequency is the same as the processor clock.

This one line patch fixes the initialisation so that the time of day
variables and the indicator we use to tell when updates are due are
better synchronised.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoLinux 2.6.12-rc5
Linus Torvalds [Wed, 25 May 2005 03:31:20 +0000 (20:31 -0700)]
Linux 2.6.12-rc5

19 years ago[PATCH] aic7xxx_osm build fix
Andrew Morton [Wed, 25 May 2005 02:31:10 +0000 (19:31 -0700)]
[PATCH] aic7xxx_osm build fix

Fix a c99ism.

Cc: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] saa6752hs build fix
Andrew Morton [Wed, 25 May 2005 02:31:10 +0000 (19:31 -0700)]
[PATCH] saa6752hs build fix

For older gcc's.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] try_to_unmap_cluster() passes out-of-bounds pte to pte_unmap()
William Lee Irwin III [Wed, 25 May 2005 02:31:09 +0000 (19:31 -0700)]
[PATCH] try_to_unmap_cluster() passes out-of-bounds pte to pte_unmap()

try_to_unmap_cluster() does:
        for (pte = pte_offset_map(pmd, address);
                        address < end; pte++, address += PAGE_SIZE) {
...
}

pte_unmap(pte);

It may take a little staring to notice, but pte can actually fall off the
end of the pte page in this iteration, which makes life difficult for
kmap_atomic() and the users not expecting it to BUG().  Of course, we're
somewhat lucky in that arithmetic elsewhere in the function guarantees that
at least one iteration is made, lest this force larger rearrangements to be
made.  This issue and patch also apply to non-mm mainline and with trivial
adjustments, at least two related kernels.

Discovered during internal testing at Oracle.

Signed-off-by: William Irwin <wli@holomorphy.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] sigkill priority fix
Kirill Korotaev [Wed, 25 May 2005 02:29:47 +0000 (19:29 -0700)]
[PATCH] sigkill priority fix

If SIGKILL does not have priority, we cannot instantly kill task before it
makes some unexpected job.  It can be critical, but we were unable to
reproduce this easily until Heiko Carstens <Heiko.Carstens@de.ibm.com>
reported this problem on LKML.

Signed-Off-By: Kirill Korotaev <dev@sw.ru>
Signed-Off-By: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] voyager_smp.c static inline fix
Dominik Hackl [Wed, 25 May 2005 02:29:46 +0000 (19:29 -0700)]
[PATCH] voyager_smp.c static inline fix

This patch fixes a compile bug by moving a static inline function to the
right place.  The body of a static inline function has to be declared
before the use of this function.

Signed-off-by: Dominik Hackl <dominik@hackl.dhs.org>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoMerge of davem@nuts.davemloft.net:/disk1/GIT/sparc-2.6/.git/
David S. Miller [Wed, 25 May 2005 01:08:07 +0000 (18:08 -0700)]
Merge ... davem@nuts.davemloft.net:/disk1/GIT/sparc-2.6/.git/

19 years ago[PATCH] Cleanup DEFINE_WAIT
blaisorblade@yahoo.it [Tue, 24 May 2005 23:31:42 +0000 (01:31 +0200)]
[PATCH] Cleanup DEFINE_WAIT

Use LIST_HEAD_INIT rather than doing it by hand in DEFINE_WAIT.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] tulip: add return to ULI526X clause in tulip_mdio_write
John W. Linville [Wed, 18 May 2005 17:41:33 +0000 (13:41 -0400)]
[PATCH] tulip: add return to ULI526X clause in tulip_mdio_write

The 'if' clause for ULI526X in tulip_mdio_write allows for
spin_unlock_irqrestore to be called twice for tp->mii_lock.  I believe
this is caused by the unintentional omission of a return at the end
of that clause.  This patch adds that return.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
19 years ago[PATCH] driver core: restore event order for device_add()
Kay Sievers [Mon, 23 May 2005 22:50:26 +0000 (15:50 -0700)]
[PATCH] driver core: restore event order for device_add()

As a result of the split of the kobject-registration and the
corresponding hotplug event, the order of events for device_add() has
changed. This restores the old order, cause it confused some userspace
applications.

Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[SPARC64]: Add boot option to force UltraSPARC-III P-Cache on.
David S. Miller [Mon, 23 May 2005 22:52:08 +0000 (15:52 -0700)]
[SPARC64]: Add boot option to force UltraSPARC-III P-Cache on.

Older UltraSPARC-III chips have a P-Cache bug that makes us disable it
by default at boot time.

However, this does hurt performance substantially, particularly with
memcpy(), and the bug is _incredibly_ obscure.  I have never seen it
triggered in practice, ever.

So provide a "-P" boot option that forces the P-Cache on.  It taints
the kernel, so if it does trigger and cause some data corruption or
OOPS, we will find out in the logs that this option was on when it
happened.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years agoMerge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git/
Linus Torvalds [Mon, 23 May 2005 21:57:14 +0000 (14:57 -0700)]
Merge ... /linux/kernel/git/davem/net-2.6.git/

19 years ago[TG3]: Update driver version.
David S. Miller [Mon, 23 May 2005 21:00:44 +0000 (14:00 -0700)]
[TG3]: Update driver version.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[TG3]: Increase TEST_BUFFER_SIZE to 8K.
David S. Miller [Mon, 23 May 2005 20:59:47 +0000 (13:59 -0700)]
[TG3]: Increase TEST_BUFFER_SIZE to 8K.

This makes the DMA bug workaround test more likely
to find the problem on some systems.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[TG3]: Update driver version and reldate.
David S. Miller [Mon, 23 May 2005 20:13:15 +0000 (13:13 -0700)]
[TG3]: Update driver version and reldate.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV6]: Fix xfrm tunnel oops with large packets
Herbert Xu [Mon, 23 May 2005 20:11:07 +0000 (13:11 -0700)]
[IPV6]: Fix xfrm tunnel oops with large packets

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NET]: netdevice.h: be'ify packet_type
Alexey Dobriyan [Mon, 23 May 2005 20:09:19 +0000 (13:09 -0700)]
[NET]: netdevice.h: be'ify packet_type

Everybody does

struct packet_type foo_packet_type = {
.type = __constant_htons(ETH_P_FOO);
};

5 introduced warnings will be properly fixed later.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[TG3]: Add 5752M device ID.
Xose Vazquez Perez [Mon, 23 May 2005 19:54:51 +0000 (12:54 -0700)]
[TG3]: Add 5752M device ID.

Add 0x1601 as 5752M, it's a 5752 but for mobile PCs.
Stolen from Broadcom bcm5700-8.1.55 driver.

Someone forgot to add it to tg3 ;-)

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NET]: include/linux/if_tr.h clean-up
Jon Mason [Mon, 23 May 2005 19:53:14 +0000 (12:53 -0700)]
[NET]: include/linux/if_tr.h clean-up

I removed the ethernet definitions (which were commented out) and
cleaned up the tabs.

Signed-off-by: Jon Mason <jdmason@us.ibm.com>
19 years ago[NET]: Kill stray reference to sock->passcred.
David S. Miller [Mon, 23 May 2005 19:45:26 +0000 (12:45 -0700)]
[NET]: Kill stray reference to sock->passcred.

That struct member was deleted, but a comment
was not updated to reflect this.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[CRYPTO]: Only reschedule if !in_atomic()
Herbert Xu [Mon, 23 May 2005 19:36:25 +0000 (12:36 -0700)]
[CRYPTO]: Only reschedule if !in_atomic()

The netlink gfp_any() problem made me double-check the uses of in_softirq()
in crypto/*.  It seems to me that we should be checking in_atomic() instead
of in_softirq() in crypto_yield.  Otherwise people calling the crypto ops
with spin locks held or preemption disabled will get burnt, right?

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[TCP]: Fix stretch ACK performance killer when doing ucopy.
David S. Miller [Mon, 23 May 2005 19:03:06 +0000 (12:03 -0700)]
[TCP]: Fix stretch ACK performance killer when doing ucopy.

When we are doing ucopy, we try to defer the ACK generation to
cleanup_rbuf().  This works most of the time very well, but if the
ucopy prequeue is large, this ACKing behavior kills performance.

With TSO, it is possible to fill the prequeue so large that by the
time the ACK is sent and gets back to the sender, most of the window
has emptied of data and performance suffers significantly.

This behavior does help in some cases, so we should think about
re-enabling this trick in the future, using some kind of limit in
order to avoid the bug case.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PATCH] ppc64: Fix g5 hw timebase sync
Benjamin Herrenschmidt [Mon, 23 May 2005 06:54:14 +0000 (16:54 +1000)]
[PATCH] ppc64: Fix g5 hw timebase sync

The hardware sync of the timebase on SMP G5s uses a black magic
incantation to the i2c clock chip that was inspired from what Darwin
does.

However, this was an earlier version of Darwin that was ...  buggy !
heh.  This causes the latest models to break though when starting SMP,
so it's worth fixing.

Here's a new version of the incantation based on careful transcription
of the said incantations as found in the latest version of apple's
temple.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ppc32: Fix an off-by-one error in ipic_init
Kumar Gala [Mon, 23 May 2005 17:29:56 +0000 (12:29 -0500)]
[PATCH] ppc32: Fix an off-by-one error in ipic_init

There is an off-by-one error in the IPIC code that configures the
external interrupts (Edge or Level Sensitive).

Signed-off-by: Randy Vinson <rvinson@mvista.com>
Signed-off-by: Kumar Gala <kumar.gala@freescale.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ppc64: Fix booting on latest G5 models
Benjamin Herrenschmidt [Mon, 23 May 2005 00:03:52 +0000 (10:03 +1000)]
[PATCH] ppc64: Fix booting on latest G5 models

The latest speedbumped Apple G5 models have a "bug" in the Open Firmware
device tree that lacks the proper interrupt routing information for the
northbridge i2c controller.  Apple's driver silently falls back into a
sub-optimal "polled" mode (heh, maybe they didn't even notice the bug
because of that :), our driver didn't properly check and crashes :(

This patch fixes our driver to not crash, and adds code to the
prom_init() OF trampoline code that detects the "bug" and adds the
missing information back for this chipset revision.  This fixes booting
and thermal control on these models.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] fix for __generic_file_aio_read() to return 0 on EOF
Suparna Bhattacharya [Sat, 21 May 2005 23:33:36 +0000 (16:33 -0700)]
[PATCH] fix for __generic_file_aio_read() to return 0 on EOF

I came across the following problem while running ltp-aiodio testcases from
ltp-full-20050405 on linux-2.6.12-rc3-mm3.  I tried running the tests with
EXT3 as well as JFS filesystems.

One or two fsx-linux testcases were hung after some time.  These testcases
were hanging at wait_for_all_aios().

Debugging shows that there were some iocbs which were not getting completed
eventhough the last retry for those returned -EIOCBQUEUED.  Also all such
pending iocbs represented READ operation.

Further debugging revealed that all such iocbs hit EOF in the DIO layer.
To be more precise, the "pos" from which they were trying to read was
greater than the "size" of the file.  So the generic_file_direct_IO
returned 0.

This happens rarely as there is already a check in
__generic_file_aio_read(), for whether "pos" < "size" before calling direct
IO routine.

>size = i_size_read(inode);
>if (pos < size) {
>   retval = generic_file_direct_IO(READ, iocb,
>                               iov, pos, nr_segs);

But for READ, we are taking the inode->i_sem only in the DIO layer.  So it
is possible that some other process can change the size of the file before
we take the i_sem.  In such a case ( when "pos" > "size"), the
__generic_file_aio_read() would return -EIOCBQUEUED even though there were
no I/O requests submitted by the DIO layer.  This would cause the AIO layer
to expect aio_complete() for THE iocb, which doesnot happen.  And thus the
test hangs forever, waiting for an I/O completion, where there are no
requests submitted at all.

The following patch makes __generic_file_aio_read() return 0 (instead of
returning -EIOCBQUEUED), on getting 0 from generic_file_direct_IO(), so
that the AIO layer does the aio_complete().

Testing:

I have tested the patch on a SMP machine(with 2 Pentium 4 (HT)) running
linux-2.6.12-rc3-mm3.  I ran the ltp-aiodio testcases and none of the
fsx-linux tests hung.  Also the aio-stress tests ran without any problem.

Signed-off-by: Suzuki K P <suzuki@in.ibm.com>
Signed-off-by: Suparna Bhattacharya <suparna@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] reiserfs: max_key fix
Vladimir Saveliev [Sat, 21 May 2005 23:33:34 +0000 (16:33 -0700)]
[PATCH] reiserfs: max_key fix

This patch fixes a bug introduced by Al Viro's patch: [patch 136/174]
reiserfs endianness: clone struct reiserfs_key

The problem is MAX_KEY and MAX_IN_CORE_KEY defined in this patch do not
look equal from reiserfs comp_key's point of view.  This caused reiserfs'
sanity check to complain.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoMerge of master.kernel.org:/home/rmk/linux-2.6-mmc.git
Linus Torvalds [Sat, 21 May 2005 22:27:09 +0000 (15:27 -0700)]
Merge ... kernel.org:/home/rmk/linux-2.6-mmc.git

19 years agoMerge of master.kernel.org:/home/rmk/linux-2.6-serial.git
Linus Torvalds [Sat, 21 May 2005 22:04:27 +0000 (15:04 -0700)]
Merge ... /home/rmk/linux-2.6-serial.git

19 years ago[PATCH] spin_unlock_bh() and preempt_check_resched()
Samuel Thibault [Sat, 21 May 2005 15:50:15 +0000 (17:50 +0200)]
[PATCH] spin_unlock_bh() and preempt_check_resched()

In _spin_unlock_bh(lock):
do { \
_raw_spin_unlock(lock); \
preempt_enable(); \
local_bh_enable(); \
__release(lock); \
} while (0)

there is no reason for using preempt_enable() instead of a simple
preempt_enable_no_resched()

Since we know bottom halves are disabled, preempt_schedule() will always
return at once (preempt_count!=0), and hence preempt_check_resched() is
useless here...

This fixes it by using "preempt_enable_no_resched()" instead of the
"preempt_enable()", and thus avoids the useless preempt_check_resched()
just before re-enabling bottom halves.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoWhen we detect that a 16550 was in fact part of a NatSemi SuperIO chip
David Woodhouse [Sat, 21 May 2005 14:52:23 +0000 (15:52 +0100)]
When we detect that a 16550 was in fact part of a NatSemi SuperIO chip
with high-speed mode enabled, we switch it to high-speed mode so that
baud_base becomes 921600. However, we also need to multiply the baud
divisor by 8 at the same time, in case it's already in use as a console.

Signed-off-by: David Woodhouse
Acked-by: Tom Rini
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[PATCH] MMC: Proper MMC command classes support
Pierre Ossman [Sat, 21 May 2005 09:27:02 +0000 (10:27 +0100)]
[PATCH] MMC: Proper MMC command classes support

Defines for the different command classes as defined in the MMC and SD
specifications.

Removes the check for high command classes and instead checks that the
command classes needed are present.
Previous solution killed forward compatibility at no apparent gain.

Signed-of-by: Pierre Ossman
19 years agoAutomatic merge of rsync://www.parisc-linux.org/~jejb/git/scsi-for-linus-2.6.git
Linus Torvalds [Sat, 21 May 2005 00:21:03 +0000 (17:21 -0700)]
Merge ... parisc-linux.org/~jejb/git/scsi-for-linus-2.6.git

19 years ago[PATCH] x86_64: i386/x86-64: Export cpu_core_map
Andi Kleen [Fri, 20 May 2005 21:27:59 +0000 (14:27 -0700)]
[PATCH] x86_64: i386/x86-64: Export cpu_core_map

Needed for the powernow k8 driver for dual core support.

Signed-off-by: Andi Kleen <ak@suse.de>
Cc: <mark.langsdorf@amd.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Add option to disable timer check
Andi Kleen [Fri, 20 May 2005 21:27:59 +0000 (14:27 -0700)]
[PATCH] x86_64: Add option to disable timer check

This works around the too fast timer seen on some ATI boards.

I don't feel confident enough about it yet to enable it by default, but give
users the option.

Patch and debugging from Christopher Allen Wing <wingc@engin.umich.edu>, with
minor tweaks (renamed the option and documented it)

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Fix 32bit system call restart
Andi Kleen [Fri, 20 May 2005 21:27:58 +0000 (14:27 -0700)]
[PATCH] x86_64: Fix 32bit system call restart

The test case at
http://cvs.sourceforge.net/viewcvs.py/posixtest/posixtestsuite/conforman
ce/interfaces/clock_nanosleep/1-5.c fails if it runs as a 32bit process on
x86_86 machines.

The root cause is the sub 32bit process fails to restart the syscall after it
is interrupted by a signal.

The syscall number of sys_restart_syscall in table sys_call_table is
__NR_restart_syscall (219) while it's __NR_ia32_restart_syscall
(0) in ia32_sys_call_table. When regs->rax==(unsigned
long)-ERESTART_RESTARTBLOCK, function do_signal doesn't distinguish if
the process is 64bit or 32bit, and always sets restart syscall number
as __NR_restart_syscall (219).

Signed-off-by: Zhang Yanmin <yanmin.zhang@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] i386: Fix race in iounmap
Andi Kleen [Fri, 20 May 2005 21:27:57 +0000 (14:27 -0700)]
[PATCH] i386: Fix race in iounmap

We need to hold the vmlist_lock while doing change_page_attr, otherwise we
could reset someone else's mapping.

Requires previous patch to add __remove_vm_area

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Fixed guard page handling again in iounmap
Andi Kleen [Fri, 20 May 2005 21:27:57 +0000 (14:27 -0700)]
[PATCH] x86_64: Fixed guard page handling again in iounmap

Caused oopses again.  Also fix potential mismatch in checking if
change_page_attr was needed.

To do it without races I needed to change mm/vmalloc.c to export a
__remove_vm_area that does not take vmlist lock.

Noticed by Terence Ripperda and based on a patch of his.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>