Commit d43cc577 authored by Linus Torvalds's avatar Linus Torvalds

Import 1.2.7

parent f1bf8612
VERSION = 1 VERSION = 1
PATCHLEVEL = 2 PATCHLEVEL = 2
SUBLEVEL = 6 SUBLEVEL = 7
ARCH = i386 ARCH = i386
......
...@@ -43,10 +43,10 @@ else ...@@ -43,10 +43,10 @@ else
comment 'SCSI support type (disk, tape, CDrom)' comment 'SCSI support type (disk, tape, CDrom)'
bool 'Scsi disk support' CONFIG_BLK_DEV_SD y bool 'SCSI disk support' CONFIG_BLK_DEV_SD y
bool 'Scsi tape support' CONFIG_CHR_DEV_ST n bool 'SCSI tape support' CONFIG_CHR_DEV_ST n
bool 'Scsi CDROM support' CONFIG_BLK_DEV_SR n bool 'SCSI CDROM support' CONFIG_BLK_DEV_SR n
bool 'Scsi generic support' CONFIG_CHR_DEV_SG n bool 'SCSI generic support' CONFIG_CHR_DEV_SG n
comment 'SCSI low-level drivers' comment 'SCSI low-level drivers'
...@@ -233,5 +233,5 @@ if [ "$CONFIG_PROFILE" = "y" ]; then ...@@ -233,5 +233,5 @@ if [ "$CONFIG_PROFILE" = "y" ]; then
int ' Profile shift count' CONFIG_PROFILE_SHIFT 2 int ' Profile shift count' CONFIG_PROFILE_SHIFT 2
fi fi
if [ "$CONFIG_SCSI" = "y" ]; then if [ "$CONFIG_SCSI" = "y" ]; then
bool 'Verbose scsi error reporting (kernel size +=12K)' CONFIG_SCSI_CONSTANTS y bool 'Verbose SCSI error reporting (kernel size +=12K)' CONFIG_SCSI_CONSTANTS y
fi fi
...@@ -69,10 +69,10 @@ else ...@@ -69,10 +69,10 @@ else
comment 'SCSI support type (disk, tape, CDrom)' comment 'SCSI support type (disk, tape, CDrom)'
bool 'Scsi disk support' CONFIG_BLK_DEV_SD y bool 'SCSI disk support' CONFIG_BLK_DEV_SD y
bool 'Scsi tape support' CONFIG_CHR_DEV_ST n bool 'SCSI tape support' CONFIG_CHR_DEV_ST n
bool 'Scsi CDROM support' CONFIG_BLK_DEV_SR n bool 'SCSI CDROM support' CONFIG_BLK_DEV_SR n
bool 'Scsi generic support' CONFIG_CHR_DEV_SG n bool 'SCSI generic support' CONFIG_CHR_DEV_SG n
comment 'Some SCSI devices (e.g. CD jukebox) support multiple LUNs' comment 'Some SCSI devices (e.g. CD jukebox) support multiple LUNs'
...@@ -267,5 +267,5 @@ if [ "$CONFIG_PROFILE" = "y" ]; then ...@@ -267,5 +267,5 @@ if [ "$CONFIG_PROFILE" = "y" ]; then
int ' Profile shift count' CONFIG_PROFILE_SHIFT 2 int ' Profile shift count' CONFIG_PROFILE_SHIFT 2
fi fi
if [ "$CONFIG_SCSI" = "y" ]; then if [ "$CONFIG_SCSI" = "y" ]; then
bool 'Verbose scsi error reporting (kernel size +=12K)' CONFIG_SCSI_CONSTANTS y bool 'Verbose SCSI error reporting (kernel size +=12K)' CONFIG_SCSI_CONSTANTS y
fi fi
...@@ -151,10 +151,10 @@ asmlinkage int do_signal(unsigned long oldmask, struct pt_regs * regs) ...@@ -151,10 +151,10 @@ asmlinkage int do_signal(unsigned long oldmask, struct pt_regs * regs)
struct sigaction * sa; struct sigaction * sa;
while ((signr = current->signal & mask)) { while ((signr = current->signal & mask)) {
__asm__("bsf %2,%1\n\t" __asm__("bsf %3,%1\n\t"
"btrl %1,%0" "btrl %1,%0"
:"=m" (current->signal),"=r" (signr) :"=m" (current->signal),"=r" (signr)
:"1" (signr)); :"0" (current->signal), "1" (signr));
sa = current->sigaction + signr; sa = current->sigaction + signr;
signr++; signr++;
if ((current->flags & PF_PTRACED) && signr != SIGKILL) { if ((current->flags & PF_PTRACED) && signr != SIGKILL) {
......
...@@ -63,10 +63,10 @@ else ...@@ -63,10 +63,10 @@ else
comment 'SCSI support type (disk, tape, CDrom)' comment 'SCSI support type (disk, tape, CDrom)'
bool 'Scsi disk support' CONFIG_BLK_DEV_SD y bool 'SCSI disk support' CONFIG_BLK_DEV_SD y
bool 'Scsi tape support' CONFIG_CHR_DEV_ST y bool 'SCSI tape support' CONFIG_CHR_DEV_ST y
bool 'Scsi CDROM support' CONFIG_BLK_DEV_SR y bool 'SCSI CDROM support' CONFIG_BLK_DEV_SR y
bool 'Scsi generic support' CONFIG_CHR_DEV_SG y bool 'SCSI generic support' CONFIG_CHR_DEV_SG y
comment 'SCSI low-level drivers' comment 'SCSI low-level drivers'
...@@ -252,5 +252,5 @@ if [ "$CONFIG_PROFILE" = "y" ]; then ...@@ -252,5 +252,5 @@ if [ "$CONFIG_PROFILE" = "y" ]; then
int ' Profile shift count' CONFIG_PROFILE_SHIFT 2 int ' Profile shift count' CONFIG_PROFILE_SHIFT 2
fi fi
if [ "$CONFIG_SCSI" = "y" ]; then if [ "$CONFIG_SCSI" = "y" ]; then
bool 'Verbose scsi error reporting (kernel size +=12K)' CONFIG_SCSI_CONSTANTS y bool 'Verbose SCSI error reporting (kernel size +=12K)' CONFIG_SCSI_CONSTANTS y
fi fi
...@@ -50,10 +50,10 @@ else ...@@ -50,10 +50,10 @@ else
comment 'SCSI support type (disk, tape, CDrom)' comment 'SCSI support type (disk, tape, CDrom)'
bool 'Scsi disk support' CONFIG_BLK_DEV_SD y bool 'SCSI disk support' CONFIG_BLK_DEV_SD y
bool 'Scsi tape support' CONFIG_CHR_DEV_ST n bool 'SCSI tape support' CONFIG_CHR_DEV_ST n
bool 'Scsi CDROM support' CONFIG_BLK_DEV_SR n bool 'SCSI CDROM support' CONFIG_BLK_DEV_SR n
bool 'Scsi generic support' CONFIG_CHR_DEV_SG n bool 'SCSI generic support' CONFIG_CHR_DEV_SG n
comment 'SCSI low-level drivers' comment 'SCSI low-level drivers'
...@@ -242,5 +242,5 @@ if [ "$CONFIG_PROFILE" = "y" ]; then ...@@ -242,5 +242,5 @@ if [ "$CONFIG_PROFILE" = "y" ]; then
int ' Profile shift count' CONFIG_PROFILE_SHIFT 2 int ' Profile shift count' CONFIG_PROFILE_SHIFT 2
fi fi
if [ "$CONFIG_SCSI" = "y" ]; then if [ "$CONFIG_SCSI" = "y" ]; then
bool 'Verbose scsi error reporting (kernel size +=12K)' CONFIG_SCSI_CONSTANTS y bool 'Verbose SCSI error reporting (kernel size +=12K)' CONFIG_SCSI_CONSTANTS y
fi fi
/* /*
* linux/drivers/block/ide-cd.c (BETA) * linux/drivers/block/ide-cd.c
* *
* 1.00 Oct 31, 1994 -- Initial version. * 1.00 Oct 31, 1994 -- Initial version.
* 1.01 Nov 2, 1994 -- Fixed problem with starting request in * 1.01 Nov 2, 1994 -- Fixed problem with starting request in
...@@ -20,10 +20,17 @@ ...@@ -20,10 +20,17 @@
* 2.03 Jan 10, 1995 -- Rewrite block read routines to handle block sizes * 2.03 Jan 10, 1995 -- Rewrite block read routines to handle block sizes
* other than 2k and to move multiple sectors in a * other than 2k and to move multiple sectors in a
* single transaction. * single transaction.
* 2.04 Apr 21, 1995 -- Add work-around for Creative Labs CD220E drives.
* Thanks to Nick Saw <cwsaw@pts7.pts.mot.com> for
* help in figuring this out. Ditto for Acer and
* Aztech drives, which seem to have the same problem.
*
* *
* ATAPI cd-rom driver. To be used with ide.c. * ATAPI cd-rom driver. To be used with ide.c.
* *
* Copyright (C) 1994, 1995 scott snyder <snyder@fnald0.fnal.gov> * Copyright (C) 1994, 1995 scott snyder <snyder@fnald0.fnal.gov>
* May be copied or modified under the terms of the GNU General Public License
* (../../COPYING).
*/ */
#include <linux/cdrom.h> #include <linux/cdrom.h>
...@@ -88,7 +95,8 @@ struct ide_cd_flags { ...@@ -88,7 +95,8 @@ struct ide_cd_flags {
unsigned media_changed : 1; /* Driver has noticed a media change. */ unsigned media_changed : 1; /* Driver has noticed a media change. */
unsigned toc_valid : 1; /* Saved TOC information is current. */ unsigned toc_valid : 1; /* Saved TOC information is current. */
unsigned reserved : 4; unsigned no_lba_toc : 1; /* Drive cannot return TOC info in LBA format */
unsigned reserved : 3;
}; };
#define CDROM_FLAGS(dev) ((struct ide_cd_flags *)&((dev)->bios_sect)) #define CDROM_FLAGS(dev) ((struct ide_cd_flags *)&((dev)->bios_sect))
...@@ -1094,6 +1102,7 @@ cdrom_read_tocentry (ide_dev_t *dev, int trackno, int msf_flag, ...@@ -1094,6 +1102,7 @@ cdrom_read_tocentry (ide_dev_t *dev, int trackno, int msf_flag,
static int static int
cdrom_read_toc (ide_dev_t *dev) cdrom_read_toc (ide_dev_t *dev)
{ {
int msf_flag;
int stat, ntracks, i; int stat, ntracks, i;
struct atapi_toc *toc = cdrom_info[dev->hwif][dev->select.b.drive].toc; struct atapi_toc *toc = cdrom_info[dev->hwif][dev->select.b.drive].toc;
...@@ -1118,8 +1127,11 @@ cdrom_read_toc (ide_dev_t *dev) ...@@ -1118,8 +1127,11 @@ cdrom_read_toc (ide_dev_t *dev)
if (CDROM_FLAGS (dev)->toc_valid) return 0; if (CDROM_FLAGS (dev)->toc_valid) return 0;
/* Some drives can't return TOC data in LBA format. */
msf_flag = (CDROM_FLAGS (dev)->no_lba_toc);
/* First read just the header, so we know how long the TOC is. */ /* First read just the header, so we know how long the TOC is. */
stat = cdrom_read_tocentry (dev, 0, 0, (char *)toc, stat = cdrom_read_tocentry (dev, 0, msf_flag, (char *)toc,
sizeof (struct atapi_toc_header) + sizeof (struct atapi_toc_header) +
sizeof (struct atapi_toc_entry)); sizeof (struct atapi_toc_entry));
if (stat) return stat; if (stat) return stat;
...@@ -1129,13 +1141,21 @@ cdrom_read_toc (ide_dev_t *dev) ...@@ -1129,13 +1141,21 @@ cdrom_read_toc (ide_dev_t *dev)
if (ntracks > MAX_TRACKS) ntracks = MAX_TRACKS; if (ntracks > MAX_TRACKS) ntracks = MAX_TRACKS;
/* Now read the whole schmeer. */ /* Now read the whole schmeer. */
stat = cdrom_read_tocentry (dev, 0, 0, (char *)toc, stat = cdrom_read_tocentry (dev, 0, msf_flag, (char *)toc,
sizeof (struct atapi_toc_header) + sizeof (struct atapi_toc_header) +
(ntracks+1) * sizeof (struct atapi_toc_entry)); (ntracks+1) * sizeof (struct atapi_toc_entry));
if (stat) return stat; if (stat) return stat;
byte_swap_word (&toc->hdr.toc_length); byte_swap_word (&toc->hdr.toc_length);
for (i=0; i<=ntracks; i++) for (i=0; i<=ntracks; i++)
byte_swap_long (&toc->ent[i].lba); {
if (msf_flag)
{
byte *adr = (byte *)&(toc->ent[i].lba);
toc->ent[i].lba = msf_to_lba (adr[1], adr[2], adr[3]);
}
else
byte_swap_long (&toc->ent[i].lba);
}
/* Remember that we've read this stuff. */ /* Remember that we've read this stuff. */
CDROM_FLAGS (dev)->toc_valid = 1; CDROM_FLAGS (dev)->toc_valid = 1;
...@@ -1618,8 +1638,20 @@ static void cdrom_setup (ide_dev_t *dev) ...@@ -1618,8 +1638,20 @@ static void cdrom_setup (ide_dev_t *dev)
CDROM_FLAGS (dev)->toc_valid = 0; CDROM_FLAGS (dev)->toc_valid = 0;
CDROM_FLAGS (dev)->no_playaudio12 = 0; CDROM_FLAGS (dev)->no_playaudio12 = 0;
CDROM_FLAGS (dev)->no_lba_toc = 0;
CDROM_FLAGS (dev)->drq_interrupt = ((dev->id->config & 0x0060) == 0x20); CDROM_FLAGS (dev)->drq_interrupt = ((dev->id->config & 0x0060) == 0x20);
/* Accommodate some broken drives... */
if (strcmp (dev->id->model, "CD220E") == 0) /* Creative Labs */
CDROM_FLAGS (dev)->no_lba_toc = 1;
else if (strcmp (dev->id->model, "TO-ICSLYAL") == 0 || /* Acer CD525E */
strcmp (dev->id->model, "OTI-SCYLLA") == 0)
CDROM_FLAGS (dev)->no_lba_toc = 1;
else if (strcmp (dev->id->model, "CDA26803I SE") == 0) /* Aztech */
CDROM_FLAGS (dev)->no_lba_toc = 1;
cdrom_info[dev->hwif][dev->select.b.drive].toc = NULL; cdrom_info[dev->hwif][dev->select.b.drive].toc = NULL;
cdrom_info[dev->hwif][dev->select.b.drive].sector_buffer = NULL; cdrom_info[dev->hwif][dev->select.b.drive].sector_buffer = NULL;
cdrom_info[dev->hwif][dev->select.b.drive].sector_buffered = 0; cdrom_info[dev->hwif][dev->select.b.drive].sector_buffered = 0;
......
Wed Apr 26 10:23:44 1995 Theodore Y. Ts'o <tytso@localhost>
* tty_io.c (release_dev): Try to shutdown the line discpline
*before* decrementing the tty count variable; this removes
a potential race condition which occurs when the line
discpline close blocks, and another process then tries
open the same serial port.
* serial.c (rs_hangup): When hanging up, flush the output buffer
befure shutting down the UART. Otherwise the line
discpline close blocks waiting for the characters to get
flushed, which never happens until the serial port gets reused.
Wed Apr 12 08:06:16 1995 Theodore Y. Ts'o <tytso@localhost> Wed Apr 12 08:06:16 1995 Theodore Y. Ts'o <tytso@localhost>
* serial.c (do_serial_hangup, do_softint, check_modem_status, * serial.c (do_serial_hangup, do_softint, check_modem_status,
......
...@@ -2090,6 +2090,7 @@ void rs_hangup(struct tty_struct *tty) ...@@ -2090,6 +2090,7 @@ void rs_hangup(struct tty_struct *tty)
if (serial_paranoia_check(info, tty->device, "rs_hangup")) if (serial_paranoia_check(info, tty->device, "rs_hangup"))
return; return;
rs_flush_buffer(tty);
shutdown(info); shutdown(info);
info->event = 0; info->event = 0;
info->count = 0; info->count = 0;
......
...@@ -1006,6 +1006,22 @@ static void release_dev(struct file * filp) ...@@ -1006,6 +1006,22 @@ static void release_dev(struct file * filp)
tty->link->count = 0; tty->link->count = 0;
} }
} }
if (tty->count <= 1) {
/*
* Shutdown the current line discipline, and reset it
* to N_TTY.
*/
if (tty->ldisc.close)
(tty->ldisc.close)(tty);
tty->ldisc = ldiscs[N_TTY];
tty->termios->c_line = N_TTY;
if (o_tty && o_tty->count <= 0) {
if (o_tty->ldisc.close)
(o_tty->ldisc.close)(o_tty);
o_tty->ldisc = ldiscs[N_TTY];
o_tty->termios->c_line = N_TTY;
}
}
if (--tty->count < 0) { if (--tty->count < 0) {
printk("release_dev: bad tty->count (%d) for %s\n", printk("release_dev: bad tty->count (%d) for %s\n",
tty->count, tty_name(tty)); tty->count, tty_name(tty));
...@@ -1039,23 +1055,6 @@ static void release_dev(struct file * filp) ...@@ -1039,23 +1055,6 @@ static void release_dev(struct file * filp)
(*p)->tty = NULL; (*p)->tty = NULL;
} }
/*
* Shutdown the current line discipline, and reset it to
* N_TTY.
*/
if (tty->ldisc.close)
(tty->ldisc.close)(tty);
tty->ldisc = ldiscs[N_TTY];
tty->termios->c_line = N_TTY;
if (o_tty) {
if (o_tty->ldisc.close)
(o_tty->ldisc.close)(o_tty);
o_tty->ldisc = ldiscs[N_TTY];
#if 0 /* No way! We just released the termios struct! */
o_tty->termios->c_line = N_TTY;
#endif
}
tty->driver.table[idx] = NULL; tty->driver.table[idx] = NULL;
if (tty->driver.flags & TTY_DRIVER_RESET_TERMIOS) { if (tty->driver.flags & TTY_DRIVER_RESET_TERMIOS) {
tty->driver.termios[idx] = NULL; tty->driver.termios[idx] = NULL;
......
...@@ -317,6 +317,7 @@ el2_close(struct device *dev) ...@@ -317,6 +317,7 @@ el2_close(struct device *dev)
outb(EGACFR_IRQOFF, E33G_GACFR); /* disable interrupts. */ outb(EGACFR_IRQOFF, E33G_GACFR); /* disable interrupts. */
NS8390_init(dev, 0); NS8390_init(dev, 0);
dev->start = 0;
return 0; return 0;
} }
......
This diff is collapsed.
...@@ -44,14 +44,13 @@ struct ei_device { ...@@ -44,14 +44,13 @@ struct ei_device {
unsigned open:1; unsigned open:1;
unsigned word16:1; /* We have the 16-bit (vs 8-bit) version of the card. */ unsigned word16:1; /* We have the 16-bit (vs 8-bit) version of the card. */
unsigned txing:1; /* Transmit Active */ unsigned txing:1; /* Transmit Active */
unsigned dmaing:2; /* Remote DMA Active */
unsigned irqlock:1; /* 8390's intrs disabled when '1'. */ unsigned irqlock:1; /* 8390's intrs disabled when '1'. */
unsigned pingpong:1; /* Using the ping-pong driver */ unsigned pingpong:1; /* Using the ping-pong driver */
unsigned char tx_start_page, rx_start_page, stop_page; unsigned char tx_start_page, rx_start_page, stop_page;
unsigned char current_page; /* Read pointer in buffer */ unsigned char current_page; /* Read pointer in buffer */
unsigned char interface_num; /* Net port (AUI, 10bT.) to use. */ unsigned char interface_num; /* Net port (AUI, 10bT.) to use. */
unsigned char txqueue; /* Tx Packet buffer queue length. */ unsigned char txqueue; /* Tx Packet buffer queue length. */
unsigned char in_interrupt; unsigned char dmaing; /* Remote DMA (Tx/Rx/Active) */
short tx1, tx2; /* Packet lengths for ping-pong tx. */ short tx1, tx2; /* Packet lengths for ping-pong tx. */
short lasttx; /* Alpha version consistency check. */ short lasttx; /* Alpha version consistency check. */
unsigned char reg0; /* Register '0' in a WD8013 */ unsigned char reg0; /* Register '0' in a WD8013 */
...@@ -61,6 +60,12 @@ struct ei_device { ...@@ -61,6 +60,12 @@ struct ei_device {
struct enet_statistics stat; struct enet_statistics stat;
}; };
/* The maximum number of 8390 interrupt serivce routines called per IRQ. */
#define MAX_SERVICE 12
/* The maximum number of jiffies waited before assuming a Tx failed. */
#define TX_TIMEOUT 20
#define ei_status (*(struct ei_device *)(dev->priv)) #define ei_status (*(struct ei_device *)(dev->priv))
/* Some generic ethernet register configurations. */ /* Some generic ethernet register configurations. */
......
...@@ -11,8 +11,8 @@ include CONFIG ...@@ -11,8 +11,8 @@ include CONFIG
MODULES := MODULES :=
NETDRV_OBJS := Space.o auto_irq.o net_init.o loopback.o NETDRV_OBJS := Space.o auto_irq.o net_init.o loopback.o
CFLAGS := $(CFLAGS) -I../../net/inet override CFLAGS := $(CFLAGS) -I../../net/inet
CPP := $(CPP) -I../../net/inet override CPP := $(CPP) -I../../net/inet
.c.o: .c.o:
$(CC) $(CFLAGS) -c $< $(CC) $(CFLAGS) -c $<
......
This diff is collapsed.
...@@ -368,6 +368,7 @@ wd_close_card(struct device *dev) ...@@ -368,6 +368,7 @@ wd_close_card(struct device *dev)
if (ei_debug > 1) if (ei_debug > 1)
printk("%s: Shutting down ethercard.\n", dev->name); printk("%s: Shutting down ethercard.\n", dev->name);
NS8390_init(dev, 0); NS8390_init(dev, 0);
dev->start = 0;
/* Change from 16-bit to 8-bit shared memory so reboot works. */ /* Change from 16-bit to 8-bit shared memory so reboot works. */
outb(ei_status.reg5, wd_cmdreg + WD_CMDREG5 ); outb(ei_status.reg5, wd_cmdreg + WD_CMDREG5 );
......
...@@ -740,7 +740,7 @@ static int normal_init (Scsi_Host_Template *tpnt, int board, int chip, ...@@ -740,7 +740,7 @@ static int normal_init (Scsi_Host_Template *tpnt, int board, int chip,
So, we stick it past the end of our hostdata structure. So, we stick it past the end of our hostdata structure.
ASSUMPTION : ASSUMPTION :
Irregardless of how many simultaenous SCSI commands we allow, Regardless of how many simultaneous SCSI commands we allow,
the probe code only executes a _single_ instruction at a time, the probe code only executes a _single_ instruction at a time,
so we only need one here, and don't need to allocate NCR53c7x0_cmd so we only need one here, and don't need to allocate NCR53c7x0_cmd
structures for each target until we are no longer in scan_scsis structures for each target until we are no longer in scan_scsis
...@@ -2304,8 +2304,8 @@ NCR53c8x0_soft_reset (struct Scsi_Host *host) { ...@@ -2304,8 +2304,8 @@ NCR53c8x0_soft_reset (struct Scsi_Host *host) {
/* /*
* Function static struct NCR53c7x0_cmd *create_cmd (Scsi_Cmnd *cmd) * Function static struct NCR53c7x0_cmd *create_cmd (Scsi_Cmnd *cmd)
* *
* Purpose : If we have not allready allocated enough NCR53c7x0_cmd * Purpose : If we have not already allocated enough NCR53c7x0_cmd
* structures to satisfy any allowable number of simultaenous * structures to satisfy any allowable number of simultaneous
* commands for this host; do so (using either scsi_malloc() * commands for this host; do so (using either scsi_malloc()
* or kmalloc() depending on configuration), and add them to the * or kmalloc() depending on configuration), and add them to the
* hostdata free list. Take the first structure off the free list, * hostdata free list. Take the first structure off the free list,
...@@ -2339,9 +2339,9 @@ create_cmd (Scsi_Cmnd *cmd) { ...@@ -2339,9 +2339,9 @@ create_cmd (Scsi_Cmnd *cmd) {
unsigned long flags; unsigned long flags;
NCR53c7x0_local_setup(cmd->host); NCR53c7x0_local_setup(cmd->host);
/* FIXME : when we start doing multiple simultaenous commands per LUN, /* FIXME : when we start doing multiple simultaneous commands per LUN,
we will need to either we will need to either
- Do an attach_slave() and detach_slave() the right way (alocate - Do an attach_slave() and detach_slave() the right way (allocate
memory in attach_slave() as we do in scsi_register). memory in attach_slave() as we do in scsi_register).
- Make sure this code works - Make sure this code works
with the former being cleaner. At the same time, we can also go with with the former being cleaner. At the same time, we can also go with
...@@ -2355,7 +2355,7 @@ create_cmd (Scsi_Cmnd *cmd) { ...@@ -2355,7 +2355,7 @@ create_cmd (Scsi_Cmnd *cmd) {
!(hostdata->cmd_allocated[cmd->target] & (1 << cmd->lun))) { !(hostdata->cmd_allocated[cmd->target] & (1 << cmd->lun))) {
for (i = host->hostt->cmd_per_lun - 1; i >= 0 --i) { for (i = host->hostt->cmd_per_lun - 1; i >= 0 --i) {
#ifdef SCSI_MALLOC #ifdef SCSI_MALLOC
/* scsi_malloc must allocate with a 512 byte granularity, but allways /* scsi_malloc must allocate with a 512 byte granularity, but always
returns buffers which are aligned on a 512 boundary */ returns buffers which are aligned on a 512 boundary */
size = (hostdata->max_cmd_size + 511) / 512 * 512; size = (hostdata->max_cmd_size + 511) / 512 * 512;
tmp = (struct NCR53c7x0_cmd *) scsi_malloc (size); tmp = (struct NCR53c7x0_cmd *) scsi_malloc (size);
...@@ -3815,7 +3815,7 @@ NCR53c7xx_reset (Scsi_Cmnd *cmd) { ...@@ -3815,7 +3815,7 @@ NCR53c7xx_reset (Scsi_Cmnd *cmd) {
save_flags(flags); save_flags(flags);
halt (host); halt (host);
NCR53c7x0_write8(SCNTL1_REG, SCNTL1_RST); NCR53c7x0_write8(SCNTL1_REG, SCNTL1_RST);
udelay(25); /* Minimum ammount of time to assert RST */ udelay(25); /* Minimum amount of time to assert RST */
NCR53c7x0_write8(SCNTL1_REG, SCNTL1_RST); NCR53c7x0_write8(SCNTL1_REG, SCNTL1_RST);
for (c = (struct NCR53c7x0_cmd *) hostdata->running_list, found = 0; c; for (c = (struct NCR53c7x0_cmd *) hostdata->running_list, found = 0; c;
c = (struct NCR53c7x0_cmd *) c->next) { c = (struct NCR53c7x0_cmd *) c->next) {
...@@ -3899,7 +3899,7 @@ shutdown (struct Scsi_Host *host) { ...@@ -3899,7 +3899,7 @@ shutdown (struct Scsi_Host *host) {
* reset. * reset.
*/ */
NCR53c7x0_write8(SCNTL1_REG, SCNTL1_RST); NCR53c7x0_write8(SCNTL1_REG, SCNTL1_RST);
udelay(25); /* Minimum ammount of time to assert RST */ udelay(25); /* Minimum amount of time to assert RST */
NCR53c7x0_write8(SCNTL1_REG, SCNTL1_RST); NCR53c7x0_write8(SCNTL1_REG, SCNTL1_RST);
restore_flags (flags); restore_flags (flags);
return 0; return 0;
......
...@@ -59,7 +59,7 @@ extern int NCR53c7xx_release(struct Scsi_Host *); ...@@ -59,7 +59,7 @@ extern int NCR53c7xx_release(struct Scsi_Host *);
#endif #endif
#define NCR53c7xx {NULL, NULL, "NCR53c{7,8}xx (rel 4)", NCR53c7xx_detect, \ #define NCR53c7xx {NULL, NULL, "NCR53c{7,8}xx (rel 4)", NCR53c7xx_detect, \
NULL, /* info */ NULL, /* command, depricated */ NULL, \ NULL, /* info */ NULL, /* command, deprecated */ NULL, \
NCR53c7xx_queue_command, NCR53c7xx_abort, NCR53c7xx_reset, \ NCR53c7xx_queue_command, NCR53c7xx_abort, NCR53c7xx_reset, \
NULL /* slave attach */, scsicam_bios_param, /* can queue */ 1, \ NULL /* slave attach */, scsicam_bios_param, /* can queue */ 1, \
/* id */ 7, 127 /* old SG_ALL */, /* cmd per lun */ 1 , \ /* id */ 7, 127 /* old SG_ALL */, /* cmd per lun */ 1 , \
......
...@@ -89,7 +89,7 @@ Mon Feb 20 08:57:17 1995 Eric Youngdale (eric@andante) ...@@ -89,7 +89,7 @@ Mon Feb 20 08:57:17 1995 Eric Youngdale (eric@andante)
* 53c7,8xx.c: crash on AEN fixed, SCSI reset is no longer a NOP, * 53c7,8xx.c: crash on AEN fixed, SCSI reset is no longer a NOP,
NULL pointer panic on odd UDCs fixed, two bugs in diagnostic output NULL pointer panic on odd UDCs fixed, two bugs in diagnostic output
fixed, should initialize correctly if left running, now loadable, fixed, should initialize correctly if left running, now loadable,
new memory allocation, extraneous diagnostic output supressed, new memory allocation, extraneous diagnostic output suppressed,
splx() replaced with save/restore flags. [ Drew ] splx() replaced with save/restore flags. [ Drew ]
* hosts.c, hosts.h, scsi_ioctl.c, sd.c, sd_ioctl.c, sg.c, sr.c, * hosts.c, hosts.h, scsi_ioctl.c, sd.c, sd_ioctl.c, sg.c, sr.c,
...@@ -111,7 +111,7 @@ Mon Feb 20 08:57:17 1995 Eric Youngdale (eric@andante) ...@@ -111,7 +111,7 @@ Mon Feb 20 08:57:17 1995 Eric Youngdale (eric@andante)
* sr.c: More photo-cd hacks to make sure we get the xa stuff right. * sr.c: More photo-cd hacks to make sure we get the xa stuff right.
* sr.h, sr.c: Change is_xa to xa_flags field. * sr.h, sr.c: Change is_xa to xa_flags field.
* st.c: Diable retries for write operations. * st.c: Disable retries for write operations.
Wed Feb 15 10:52:56 1995 Eric Youngdale (eric@andante) Wed Feb 15 10:52:56 1995 Eric Youngdale (eric@andante)
...@@ -181,7 +181,7 @@ Wed Feb 1 09:20:45 1995 Eric Youngdale (eric@andante) ...@@ -181,7 +181,7 @@ Wed Feb 1 09:20:45 1995 Eric Youngdale (eric@andante)
* Linux 1.1.89 released. * Linux 1.1.89 released.
* Makefile, u14-34f.c: Modulariz.e * Makefile, u14-34f.c: Modularize.
* Makefile, eata.c: Modularize. Now version 1.14 * Makefile, eata.c: Modularize. Now version 1.14
...@@ -202,7 +202,7 @@ Wed Feb 1 09:20:45 1995 Eric Youngdale (eric@andante) ...@@ -202,7 +202,7 @@ Wed Feb 1 09:20:45 1995 Eric Youngdale (eric@andante)
* scsi.h: Define QUEUE_FULL condition. * scsi.h: Define QUEUE_FULL condition.
* sd.c: Do not check for non-existant partition until after * sd.c: Do not check for non-existent partition until after
new media check. new media check.
* sg.c: Undo previous change which was wrong. * sg.c: Undo previous change which was wrong.
...@@ -281,7 +281,7 @@ Wed Jan 18 23:33:09 1995 Eric Youngdale (eric@andante) ...@@ -281,7 +281,7 @@ Wed Jan 18 23:33:09 1995 Eric Youngdale (eric@andante)
* scsi.c: Make RECOVERED_ERROR a SUGGEST_IS_OK. * scsi.c: Make RECOVERED_ERROR a SUGGEST_IS_OK.
* sd.c: Fail if we are opening a non-existant partition. * sd.c: Fail if we are opening a non-existent partition.
* sr.c: Bump SR_TIMEOUT to 15000. * sr.c: Bump SR_TIMEOUT to 15000.
Do not probe for media size at boot time(hard on changers). Do not probe for media size at boot time(hard on changers).
......
...@@ -1849,7 +1849,7 @@ asmlinkage int sys_bdflush(int func, long data) ...@@ -1849,7 +1849,7 @@ asmlinkage int sys_bdflush(int func, long data)
/* If there are still a lot of dirty buffers around, skip the sleep /* If there are still a lot of dirty buffers around, skip the sleep
and flush some more */ and flush some more */
if(nr_buffers_type[BUF_DIRTY] < (nr_buffers - nr_buffers_type[BUF_SHARED]) * if(nr_buffers_type[BUF_DIRTY] <= (nr_buffers - nr_buffers_type[BUF_SHARED]) *
bdf_prm.b_un.nfract/100) { bdf_prm.b_un.nfract/100) {
if (current->signal & (1 << (SIGKILL-1))) { if (current->signal & (1 << (SIGKILL-1))) {
bdflush_running--; bdflush_running--;
......
...@@ -6,8 +6,13 @@ ...@@ -6,8 +6,13 @@
#undef htonl #undef htonl
#undef htons #undef htons
#ifndef LITTLE_ENDIAN
#define LITTLE_ENDIAN #define LITTLE_ENDIAN
#endif
#ifndef LITTLE_ENDIAN_BITFIELD
#define LITTLE_ENDIAN_BITFIELD #define LITTLE_ENDIAN_BITFIELD
#endif
extern unsigned long int ntohl(unsigned long int); extern unsigned long int ntohl(unsigned long int);
extern unsigned short int ntohs(unsigned short int); extern unsigned short int ntohs(unsigned short int);
......
...@@ -6,8 +6,13 @@ ...@@ -6,8 +6,13 @@
#undef htonl #undef htonl
#undef htons #undef htons
#ifndef LITTLE_ENDIAN
#define LITTLE_ENDIAN 1234 #define LITTLE_ENDIAN 1234
#endif
#ifndef LITTLE_ENDIAN_BITFIELD
#define LITTLE_ENDIAN_BITFIELD #define LITTLE_ENDIAN_BITFIELD
#endif
extern unsigned long int ntohl(unsigned long int); extern unsigned long int ntohl(unsigned long int);
extern unsigned short int ntohs(unsigned short int); extern unsigned short int ntohs(unsigned short int);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment