Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block

* 'for-linus' of git://git.kernel.dk/linux-2.6-block:
  Revert "unexport bio_{,un}map_user"
  relay: fix subbuf_splice_actor() adding too many pages
  The ps2esdi driver was marked as BROKEN more than two years ago due to being
This commit is contained in:
Linus Torvalds 2008-03-18 07:43:14 -07:00
commit 92f53c6f1e
8 changed files with 10 additions and 1203 deletions

View file

@ -143,14 +143,7 @@ MCA Device Drivers
Currently, there are a number of MCA-specific device drivers.
1) PS/2 ESDI
drivers/block/ps2esdi.c
include/linux/ps2esdi.h
Uses major number 36, and should use /dev files /dev/eda, /dev/edb.
Supports two drives, but only one controller. May use the
command-line args "ed=cyl,head,sec" and "tp720".
2) PS/2 SCSI
1) PS/2 SCSI
drivers/scsi/ibmmca.c
drivers/scsi/ibmmca.h
The driver for the IBM SCSI subsystem. Includes both integrated
@ -159,25 +152,25 @@ Currently, there are a number of MCA-specific device drivers.
machine with a front-panel display (i.e. model 95), you can use
"ibmmcascsi=display" to enable a drive activity indicator.
3) 3c523
2) 3c523
drivers/net/3c523.c
drivers/net/3c523.h
3Com 3c523 Etherlink/MC ethernet driver.
4) SMC Ultra/MCA and IBM Adapter/A
3) SMC Ultra/MCA and IBM Adapter/A
drivers/net/smc-mca.c
drivers/net/smc-mca.h
Driver for the MCA version of the SMC Ultra and various other
OEM'ed and work-alike cards (Elite, Adapter/A, etc).
5) NE/2
4) NE/2
driver/net/ne2.c
driver/net/ne2.h
The NE/2 is the MCA version of the NE2000. This may not work
with clones that have a different adapter id than the original
NE/2.
6) Future Domain MCS-600/700, OEM'd IBM Fast SCSI Adapter/A and
5) Future Domain MCS-600/700, OEM'd IBM Fast SCSI Adapter/A and
Reply Sound Blaster/SCSI (SCSI part)
Better support for these cards than the driver for ISA.
Supports multiple cards with IRQ sharing.

View file

@ -44,16 +44,6 @@ config MAC_FLOPPY
If you have a SWIM-3 (Super Woz Integrated Machine 3; from Apple)
floppy controller, say Y here. Most commonly found in PowerMacs.
config BLK_DEV_PS2
tristate "PS/2 ESDI hard disk support"
depends on MCA && MCA_LEGACY && BROKEN
help
Say Y here if you have a PS/2 machine with a MCA bus and an ESDI
hard disk.
To compile this driver as a module, choose M here: the
module will be called ps2esdi.
config AMIGA_Z2RAM
tristate "Amiga Zorro II ramdisk support"
depends on ZORRO

View file

@ -13,7 +13,6 @@ obj-$(CONFIG_ATARI_FLOPPY) += ataflop.o
obj-$(CONFIG_AMIGA_Z2RAM) += z2ram.o
obj-$(CONFIG_BLK_DEV_RAM) += brd.o
obj-$(CONFIG_BLK_DEV_LOOP) += loop.o
obj-$(CONFIG_BLK_DEV_PS2) += ps2esdi.o
obj-$(CONFIG_BLK_DEV_XD) += xd.o
obj-$(CONFIG_BLK_CPQ_DA) += cpqarray.o
obj-$(CONFIG_BLK_CPQ_CISS_DA) += cciss.o

File diff suppressed because it is too large Load diff

View file

@ -1194,6 +1194,8 @@ EXPORT_SYMBOL(bio_hw_segments);
EXPORT_SYMBOL(bio_add_page);
EXPORT_SYMBOL(bio_add_pc_page);
EXPORT_SYMBOL(bio_get_nr_vecs);
EXPORT_SYMBOL(bio_map_user);
EXPORT_SYMBOL(bio_unmap_user);
EXPORT_SYMBOL(bio_map_kern);
EXPORT_SYMBOL(bio_pair_release);
EXPORT_SYMBOL(bio_split);

View file

@ -127,7 +127,6 @@ header-y += pkt_sched.h
header-y += posix_types.h
header-y += ppdev.h
header-y += prctl.h
header-y += ps2esdi.h
header-y += qnxtypes.h
header-y += quotaio_v1.h
header-y += quotaio_v2.h

View file

@ -1,98 +0,0 @@
#ifndef _PS2ESDI_H_
#define _PS2ESDI_H_
#define NRML_ESDI_ID 0xddff
#define INTG_ESDI_ID 0xdf9f
#define PRIMARY_IO_BASE 0x3510
#define ALT_IO_BASE 0x3518
#define ESDI_CMD_INT (io_base+0)
#define ESDI_STT_INT (io_base+0)
#define ESDI_CONTROL (io_base+2)
#define ESDI_STATUS (io_base+2)
#define ESDI_ATTN (io_base+3)
#define ESDI_INTRPT (io_base+3)
#define STATUS_ENABLED 0x01
#define STATUS_ALTERNATE 0x02
#define STATUS_BUSY 0x10
#define STATUS_STAT_AVAIL 0x08
#define STATUS_INTR 0x01
#define STATUS_RESET_FAIL 0xea
#define STATUS_CMD_INF 0x04
#define CTRL_SOFT_RESET 0xe4
#define CTRL_HARD_RESET 0x80
#define CTRL_EOI 0xe2
#define CTRL_ENABLE_DMA 0x02
#define CTRL_ENABLE_INTR 0x01
#define CTRL_DISABLE_INTR 0x00
#define ATT_EOI 0x02
/* bits of word 0 of configuration status block. more info see p.38 of tech ref */
#define CONFIG_IS 0x10 /* Invalid Secondary */
#define CONFIG_ZD 0x08 /* Zero Defect */
#define CONFIG_SF 0x04 /* Skewed Format */
#define CONFIG_FR 0x02 /* Removable */
#define CONFIG_RT 0x01 /* Retries */
#define PORT_SYS_A 0x92
#define PORT_DMA_FN 0x18
#define PORT_DMA_EX 0x1a
#define ON (unsigned char)0x40
#define OFF (unsigned char)~ON
#define LITE_ON outb(inb(PORT_SYS_A) | ON,PORT_SYS_A)
#define LITE_OFF outb((inb(PORT_SYS_A) & OFF),PORT_SYS_A)
#define FAIL 0
#define SUCCES 1
#define INT_CMD_COMPLETE 0x01
#define INT_CMD_ECC 0x03
#define INT_CMD_RETRY 0x05
#define INT_CMD_FORMAT 0x06
#define INT_CMD_ECC_RETRY 0x07
#define INT_CMD_WARNING 0x08
#define INT_CMD_ABORT 0x09
#define INT_RESET 0x0A
#define INT_TRANSFER_REQ 0x0B
#define INT_CMD_FAILED 0x0C
#define INT_DMA_ERR 0x0D
#define INT_CMD_BLK_ERR 0x0E
#define INT_ATTN_ERROR 0x0F
#define DMA_MASK_CHAN 0x90
#define DMA_UNMASK_CHAN 0xA0
#define DMA_WRITE_ADDR 0x20
#define DMA_WRITE_TC 0x40
#define DMA_WRITE_MODE 0x70
#define CMD_GET_DEV_CONFIG 0x09
#define CMD_READ 0x4601
#define CMD_WRITE 0x4602
#define DMA_READ_16 0x4C
#define DMA_WRITE_16 0x44
#define MB 1024*1024
#define SECT_SIZE 512
#define ERROR 1
#define OK 0
#define HDIO_GETGEO 0x0301
#define FALSE 0
#define TRUE !FALSE
struct ps2esdi_geometry {
unsigned char heads;
unsigned char sectors;
unsigned short cylinders;
unsigned long start;
};
#endif /* _PS2ESDI_H_ */

View file

@ -1066,7 +1066,7 @@ static int subbuf_splice_actor(struct file *in,
unsigned int flags,
int *nonpad_ret)
{
unsigned int pidx, poff, total_len, subbuf_pages, ret;
unsigned int pidx, poff, total_len, subbuf_pages, nr_pages, ret;
struct rchan_buf *rbuf = in->private_data;
unsigned int subbuf_size = rbuf->chan->subbuf_size;
uint64_t pos = (uint64_t) *ppos;
@ -1097,8 +1097,9 @@ static int subbuf_splice_actor(struct file *in,
subbuf_pages = rbuf->chan->alloc_size >> PAGE_SHIFT;
pidx = (read_start / PAGE_SIZE) % subbuf_pages;
poff = read_start & ~PAGE_MASK;
nr_pages = min_t(unsigned int, subbuf_pages, PIPE_BUFFERS);
for (total_len = 0; spd.nr_pages < subbuf_pages; spd.nr_pages++) {
for (total_len = 0; spd.nr_pages < nr_pages; spd.nr_pages++) {
unsigned int this_len, this_end, private;
unsigned int cur_pos = read_start + total_len;