Commit 742db559 authored by Linus Torvalds's avatar Linus Torvalds

Import 2.2.6

parent 6efb5cad
......@@ -7,7 +7,7 @@ mount -t ufs -o ufstype=type_of_ufs device dir
UFS OPTIONS
===========
ufstype=string
ufstype=type_of_ufs
UFS is a file system widely used in different operating systems.
The problem are differencies among implementations. Features of
some implementations are undocumented, so its hard to recognize
......@@ -26,7 +26,7 @@ ufstype=string
sunx86 used in SunOS for Intel (Solarisx86)
supported as read-write
nextsptep
nextstep
used in NextStep
supported as read-only
......@@ -46,4 +46,4 @@ BUG REPORTS
===========
Any ufs bug report you can send to daniel.pirkl@email.cz (do not send
partition tables bug reports).
partition tables bug reports.)
......@@ -643,6 +643,13 @@ M: emoenke@gwdg.de
L: linux-kernel@vger.rutgers.edu
S: Maintained
SCSI SG DRIVER
P: Doug Gilbert
M: dgilbert@interlog.com
L: linux-scsi@vger.rutgers.edu
W: http://www.torque.net/sg
S: Maintained
SCSI SUBSYSTEM
L: linux-scsi@vger.rutgers.edu
S: Unmaintained
......
......@@ -343,7 +343,8 @@ endif
clean: archclean
rm -f kernel/ksyms.lst include/linux/compile.h
rm -f core `find . -name '*.[oas]' ! -regex '.*lxdialog/.*' -print`
rm -f core `find . -name '*.[oas]' ! -regex '.*lxdialog/.*' \
! -regex '.*ksymoops/.*' -print`
rm -f core `find . -type f -name 'core' -print`
rm -f core `find . -name '.*.flags' -print`
rm -f vmlinux System.map
......@@ -367,6 +368,7 @@ mrproper: clean archmrproper
rm -f .version .config* config.in config.old
rm -f scripts/tkparse scripts/kconfig.tk scripts/kconfig.tmp
rm -f scripts/lxdialog/*.o scripts/lxdialog/lxdialog
rm -f scripts/ksymoops/*.o scripts/ksymoops/ksymoops
rm -f .menuconfig.log
rm -f include/asm
rm -rf include/config
......@@ -379,8 +381,8 @@ mrproper: clean archmrproper
distclean: mrproper
rm -f core `find . \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-o -name '.*.rej' -o -name '.SUMS' -o -size 0 \) -print` TAGS
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-o -name '.*.rej' -o -name '.SUMS' -o -size 0 \) -print` TAGS
backup: mrproper
cd .. && tar cf - linux/ | gzip -9 > backup.gz
......
......@@ -21,6 +21,7 @@
* small packets.
*
*/
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/string.h>
......
#include <linux/config.h>
#include "../kernel/ppc_defs.h"
#include "../kernel/ppc_asm.tmpl"
#include <asm/processor.h>
......
......@@ -8,7 +8,6 @@
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#include <linux/config.h>
#include "../kernel/ppc_asm.tmpl"
#include <asm/processor.h>
#include <asm/errno.h>
......
#include <linux/config.h>
#include "../kernel/ppc_defs.h"
#include "../kernel/ppc_asm.tmpl"
#include <asm/processor.h>
......
......@@ -56,8 +56,6 @@
#endif
#define KERNEL
#include <linux/config.h>
#include <linux/types.h>
#include <linux/fs.h>
#include <linux/mm.h> /* for verify_area */
......
......@@ -26,6 +26,7 @@
/*****************************************************************************/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/malloc.h>
#include <linux/interrupt.h>
......
......@@ -26,6 +26,7 @@
/*****************************************************************************/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/malloc.h>
#include <linux/interrupt.h>
......
......@@ -5,7 +5,6 @@
* Copyright (C) 1996 Paul Mackerras.
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/kernel.h>
......
......@@ -1911,6 +1911,8 @@ void dfx_interrupt(
}
bp = (DFX_board_t *) dev->priv;
spin_lock(&bp->lock);
/* See if we're already servicing an interrupt */
if (dev->interrupt)
......@@ -1955,6 +1957,7 @@ void dfx_interrupt(
}
dev->interrupt = DFX_UNMASK_INTERRUPTS;
spin_unlock(&bp->lock);
return;
}
......@@ -3205,10 +3208,11 @@ int dfx_xmt_queue_pkt(
)
{
DFX_board_t *bp = (DFX_board_t *) dev->priv;
u8 prod; /* local transmit producer index */
DFX_board_t *bp = (DFX_board_t *) dev->priv;
u8 prod; /* local transmit producer index */
PI_XMT_DESCR *p_xmt_descr; /* ptr to transmit descriptor block entry */
XMT_DRIVER_DESCR *p_xmt_drv_descr; /* ptr to transmit driver descriptor */
unsigned long flags;
/*
* Verify that incoming transmit request is OK
......@@ -3252,6 +3256,8 @@ int dfx_xmt_queue_pkt(
}
}
spin_lock_irqsave(&bp->lock, flags);
/* Get the current producer and the next free xmt data descriptor */
prod = bp->rcv_xmt_reg.index.xmt_prod;
......@@ -3272,9 +3278,10 @@ int dfx_xmt_queue_pkt(
/* Write the three PRH bytes immediately before the FC byte */
*((char *)skb->data - 3) = DFX_PRH0_BYTE; /* these byte values are defined */
*((char *)skb->data - 2) = DFX_PRH1_BYTE; /* in the Motorola FDDI MAC chip */
*((char *)skb->data - 1) = DFX_PRH2_BYTE; /* specification */
skb_push(skb,3);
skb->data[0] = DFX_PRH0_BYTE; /* these byte values are defined */
skb->data[1] = DFX_PRH1_BYTE; /* in the Motorola FDDI MAC chip */
skb->data[2] = DFX_PRH2_BYTE; /* specification */
/*
* Write the descriptor with buffer info and bump producer
......@@ -3304,7 +3311,7 @@ int dfx_xmt_queue_pkt(
*/
p_xmt_descr->long_0 = (u32) (PI_XMT_DESCR_M_SOP | PI_XMT_DESCR_M_EOP | ((skb->len + 3) << PI_XMT_DESCR_V_SEG_LEN));
p_xmt_descr->long_1 = (u32) virt_to_bus(skb->data - 3);
p_xmt_descr->long_1 = (u32) virt_to_bus(skb->data);
/*
* Verify that descriptor is actually available
......@@ -3318,7 +3325,11 @@ int dfx_xmt_queue_pkt(
*/
if (prod == bp->rcv_xmt_reg.index.xmt_comp)
{
skb_pull(skb,3);
spin_unlock_irqrestore(&bp->lock, flags);
return(1); /* requeue packet for later */
}
/*
* Save info for this packet for xmt done indication routine
......@@ -3342,6 +3353,7 @@ int dfx_xmt_queue_pkt(
bp->rcv_xmt_reg.index.xmt_prod = prod;
dfx_port_write_long(bp, PI_PDQ_K_REG_TYPE_2_PROD, bp->rcv_xmt_reg.lword);
spin_unlock_irqrestore(&bp->lock, flags);
return(0); /* packet queued to adapter */
}
......
......@@ -1748,6 +1748,10 @@ typedef struct DFX_board_tag
/* Store pointers to transmit buffers for transmit completion code */
XMT_DRIVER_DESCR xmt_drv_descr_blk[PI_XMT_DATA_K_NUM_ENTRIES];
/* Transmit spinlocks */
spinlock_t lock;
/* Store device, bus-specific, and parameter information for this adapter */
......
......@@ -121,6 +121,7 @@ struct cisco_packet {
u16 time1;
};
#define CISCO_PACKET_LEN 18
#define CISCO_BIG_PACKET_LEN 20
static struct sppp *spppq;
static struct timer_list sppp_keepalive_timer;
......@@ -649,7 +650,7 @@ static void sppp_cisco_input (struct sppp *sp, struct sk_buff *skb)
struct cisco_packet *h;
struct device *dev = sp->pp_if;
if (skb->len != CISCO_PACKET_LEN) {
if (skb->len != CISCO_PACKET_LEN && skb->len != CISCO_BIG_PACKET_LEN) {
if (sp->pp_flags & PP_DEBUG)
printk (KERN_WARNING "%s: invalid cisco packet length: %d bytes\n",
dev->name, skb->len);
......
......@@ -416,8 +416,9 @@ static void z8530_dma_rx(struct z8530_channel *chan)
static void z8530_dma_tx(struct z8530_channel *chan)
{
if(!chan->txdma_on)
if(!chan->dma_tx)
{
printk("Hey who turned the DMA off?\n");
z8530_tx(chan);
return;
}
......@@ -434,7 +435,7 @@ static void z8530_dma_status(struct z8530_channel *chan)
chan->status=status;
if(chan->txdma_on)
if(chan->dma_tx)
{
if(status&TxEOM)
{
......@@ -619,6 +620,9 @@ int z8530_sync_open(struct device *dev, struct z8530_channel *c)
z8530_rx_done(c); /* Load the frame ring */
z8530_rx_done(c); /* Load the backup frame */
z8530_rtsdtr(c,1);
c->dma_tx = 0;
c->regs[R1]|=TxINT_ENAB;
write_zsreg(c, R1, c->regs[R1]);
write_zsreg(c, R3, c->regs[R3]|RxENABLE);
return 0;
}
......@@ -706,6 +710,9 @@ int z8530_sync_dma_open(struct device *dev, struct z8530_channel *c)
c->regs[R14]|= DTRREQ;
write_zsreg(c, R14, c->regs[R14]);
c->regs[R1]&= ~TxINT_ENAB;
write_zsreg(c, R1, c->regs[R1]);
/*
* RX DMA via W/Req
*/
......@@ -713,6 +720,7 @@ int z8530_sync_dma_open(struct device *dev, struct z8530_channel *c)
c->regs[R1]|= WT_FN_RDYFN;
c->regs[R1]|= WT_RDY_RT;
c->regs[R1]|= INT_ERR_Rx;
c->regs[R1]&= ~TxINT_ENAB;
write_zsreg(c, R1, c->regs[R1]);
c->regs[R1]|= WT_RDY_ENAB;
write_zsreg(c, R1, c->regs[R1]);
......@@ -972,7 +980,7 @@ void z8530_describe(struct z8530_dev *dev, char *mapping, int io)
dev->name,
z8530_type_name[dev->type],
mapping,
io,
Z8530_PORT_OF(io),
dev->irq);
}
......@@ -991,7 +999,7 @@ int z8530_init(struct z8530_dev *dev)
dev->chanB.irqs=&z8530_nop;
/* Reset the chip */
write_zsreg(&dev->chanA, R9, 0xC0);
udelay(100);
udelay(200);
/* Now check its valid */
write_zsreg(&dev->chanA, R12, 0xAA);
if(read_zsreg(&dev->chanA, R12)!=0xAA)
......@@ -1108,7 +1116,7 @@ static void z8530_tx_begin(struct z8530_channel *c)
if(c->tx_skb==NULL)
{
/* Idle on */
if(c->txdma)
if(c->dma_tx)
{
flags=claim_dma_lock();
disable_dma(c->txdma);
......@@ -1126,7 +1134,6 @@ static void z8530_tx_begin(struct z8530_channel *c)
}
else
{
c->tx_ptr=c->tx_next_ptr;
c->txcount=c->tx_skb->len;
......@@ -1141,6 +1148,18 @@ static void z8530_tx_begin(struct z8530_channel *c)
flags=claim_dma_lock();
disable_dma(c->txdma);
/*
* These two are needed by the 8530/85C30
* and must be issued when idling.
*/
if(c->dev->type!=Z85230)
{
write_zsctrl(c, RES_Tx_CRC);
write_zsctrl(c, RES_EOM_L);
}
write_zsreg(c, R10, c->regs[10]&~ABUNDER);
clear_dma_ff(c->txdma);
set_dma_addr(c->txdma, virt_to_bus(c->tx_ptr));
set_dma_count(c->txdma, c->txcount);
......@@ -1156,7 +1175,7 @@ static void z8530_tx_begin(struct z8530_channel *c)
/* ABUNDER off */
write_zsreg(c, R10, c->regs[10]);
write_zsctrl(c, RES_Tx_CRC);
write_zsctrl(c, RES_EOM_L);
//??? write_zsctrl(c, RES_EOM_L);
while(c->txcount && (read_zsreg(c,R0)&Tx_BUF_EMP))
{
......
......@@ -8,7 +8,6 @@
* to a file instead. (or will shortly)
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/sched.h>
......
......@@ -36,6 +36,9 @@ dep_tristate 'AdvanSys SCSI support' CONFIG_SCSI_ADVANSYS $CONFIG_SCSI
dep_tristate 'Always IN2000 SCSI support' CONFIG_SCSI_IN2000 $CONFIG_SCSI
dep_tristate 'AM53/79C974 PCI SCSI support' CONFIG_SCSI_AM53C974 $CONFIG_SCSI
dep_tristate 'AMI MegaRAID support' CONFIG_SCSI_MEGARAID $CONFIG_SCSI
if [ "$CONFIG_SCSI_MEGARAID" != "n" ]; then
bool ' Concurrent IO commands on MegaRAID' CONFIG_MEGARAID_MULTI_IO
fi
dep_tristate 'BusLogic SCSI support' CONFIG_SCSI_BUSLOGIC $CONFIG_SCSI
if [ "$CONFIG_SCSI_BUSLOGIC" != "n" ]; then
......
......@@ -114,7 +114,6 @@ MODULE_DESCRIPTION ("AMI MegaRAID driver");
#include <linux/sched.h>
#include <linux/stat.h>
#include <linux/malloc.h> /* for kmalloc() */
#include <linux/config.h> /* for CONFIG_PCI */
#if LINUX_VERSION_CODE < 0x20100
#include <linux/bios32.h>
#else
......@@ -884,7 +883,7 @@ static int MegaIssueCmd (mega_host_config * megaCfg,
spin_lock_irqsave(&mega_lock,flags);
#if !MULTI_IO
#ifndef CONFIG_MEGARAID_MULTI_IO
if (megaCfg->flag & PENDING) {
spin_unlock_irqrestore(&mega_lock,flags);
return -1;
......
......@@ -5,9 +5,6 @@
#include <linux/version.h>
#endif
#define MULTI_IO 0 /* change to 1 for fully parallel I/O to adapter */
/* works on some systems, not on others yet */
#define IN_ISR 0x80000000L
#define NO_INTR 0x40000000L
#define IN_TIMEOUT 0x20000000L
......
This diff is collapsed.
......@@ -5,6 +5,7 @@
* Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz)
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
......
......@@ -9,6 +9,7 @@
* more details.
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
......
......@@ -69,6 +69,10 @@ int do_truncate(struct dentry *dentry, unsigned long length)
int error;
struct iattr newattrs;
/* Not pretty: "inode->i_size" shouldn't really be "off_t". But it is. */
if ((off_t) length < 0)
return -EINVAL;
down(&inode->i_sem);
newattrs.ia_size = length;
newattrs.ia_valid = ATTR_SIZE | ATTR_CTIME;
......
......@@ -123,12 +123,14 @@ extern inline int down_trylock(struct semaphore * sem)
do {
tmp = ldq_l;
sub = 0x0000000100000000;
ret = ((int)tmp <= 0); // count <= 0 ?
// If we're subtracting one from count, we don't need
// one from waking and vice versa.
if ((int)tmp > 0) sub = 1; // count > 0 ?
if ((long)tmp >= 0) ret = 0; // waking >= 0 ?
if (ret) break;
ret = ((int)tmp <= 0); // count =< 0 ?
if ((int)tmp >= 0) sub = 0; // count >= 0 ?
// note that if count=0 subq overflows to the high
// longword (i.e waking)
ret &= ((long)tmp < 0); // waking < 0 ?
sub += 1;
if (ret)
break;
tmp -= sub;
tmp = stq_c = tmp;
} while (tmp == 0);
......@@ -140,13 +142,14 @@ extern inline int down_trylock(struct semaphore * sem)
" addl %1,0,%2\n"
" sll %3,32,%3\n"
" cmple %2,0,%0\n"
" cmovgt %2,1,%3\n"
" cmovge %1,0,%0\n"
" cmovge %2,0,%3\n"
" cmplt %1,0,%2\n"
" addq %3,1,%3\n"
" and %0,%2,%0\n"
" bne %0,2f\n"
" subq %1,%3,%1\n"
" stq_c %1,%4\n"
" beq %1,3f\n"
" mb\n"
"2:\n"
".section .text2,\"ax\"\n"
"3: br 1b\n"
......
......@@ -17,7 +17,7 @@ static inline unsigned long page_address(struct page * page)
return PAGE_OFFSET + PAGE_SIZE * (page - mem_map);
}
#define PAGE_HASH_BITS 11
#define PAGE_HASH_BITS 12
#define PAGE_HASH_SIZE (1 << PAGE_HASH_BITS)
#define PAGE_AGE_VALUE 16
......
This diff is collapsed.
......@@ -18,6 +18,7 @@
* 2 of the License, or (at your option) any later version.
*/
#include <linux/config.h>
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/socket.h>
......
......@@ -23,7 +23,6 @@
*
********************************************************************/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/socket.h>
#include <linux/sockios.h>
......
......@@ -22,7 +22,6 @@
*
********************************************************************/
#include <linux/config.h>
#include <linux/skbuff.h>
#include <linux/if.h>
#include <linux/if_ether.h>
......
......@@ -20,10 +20,7 @@ ls -l /usr/lib/lib{g,stdc}++.so 2>/dev/null | awk -F. \
'{print "Linux C++ Library " $4"."$5"."$6}'
ps --version 2>&1 | awk 'NR==1{print "Procps ", $NF}'
mount --version | awk -F\- '{print "Mount ", $NF}'
netstat --version | awk \
'NR==1{if ($5 != "") { n=split($5,buf,"-"); ver=buf[n]; done=1 }}
NR==2{if (done != 1) ver=$3 }
END{print "Net-tools ",ver}'
hostname -V 2>&1 | awk 'NR==1{print "Net-tools ", $NF}'
loadkeys -h 2>&1 | awk \
'(NR==1 && $3) {ver=$3}
(NR==2 && $1 ~ /console-tools/) {print "Console-tools ",$3; done=1}
......
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