Commit ab6ba1da authored by Linus Torvalds's avatar Linus Torvalds

Import 2.1.42

parent 27706c90
......@@ -10,7 +10,7 @@
NM := nm -B
LINKFLAGS = -static -T arch/alpha/vmlinux.lds -N
LINKFLAGS = -static -T arch/alpha/vmlinux.lds
CFLAGS := $(CFLAGS) -pipe -mno-fp-regs -ffixed-8
HEAD := arch/alpha/kernel/head.o
......
......@@ -501,9 +501,8 @@ static int lp_open(struct inode * inode, struct file * file)
static int lp_release(struct inode * inode, struct file * file)
{
unsigned int minor = MINOR(inode->i_rdev);
unsigned int irq;
if ((irq = LP_IRQ(minor))) {
if (LP_IRQ(minor) > 0) {
kfree_s(lp_table[minor].lp_buffer, LP_BUFFER_SIZE);
lp_table[minor].lp_buffer = NULL;
}
......@@ -707,7 +706,7 @@ __initfunc(int lp_init(void))
lp_table[count].flags |= LP_EXIST;
printk(KERN_INFO "lp%d: using %s at 0x%x, ",
count, pb->name, pb->base);
if (pb->irq == -1)
if (pb->irq == PARPORT_IRQ_NONE)
printk("polling.\n");
else
printk("irq %d.\n", pb->irq);
......
......@@ -145,7 +145,7 @@ hw_entry hw_table[] =
char *questions[] =
{
"ProAudioSpectrum 16 support",
"100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support",
"100%% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support",
"Generic OPL2/OPL3 FM synthesizer support",
"Gravis Ultrasound support",
"MPU-401 support (NOT for SB16)",
......
......@@ -12,8 +12,6 @@
/* Internal header file for autofs */
/* #define DEBUG_WAITLIST 1 */
#include <linux/auto_fs.h>
/* This is the range of ioctl() numbers we claim as ours */
......
......@@ -16,46 +16,6 @@
#include <linux/file.h>
#include "autofs_i.h"
#ifdef DEBUG_WAITLIST
#ifndef i386
#error Only i386 implemented
#endif
static inline int sane_pointer(void *p)
{
return (p == NULL) || ((unsigned) p > 0xc0000000);
}
void autofs_check_waitlist_integrity(struct autofs_sb_info *sbi, char *op)
{
struct autofs_wait_queue **wqp, *wq;
if ( sbi->magic != AUTOFS_SBI_MAGIC ) {
printk("autofs: CHECK_WAITLIST with bogus sbi pointer: %p\n",
sbi);
return;
}
wqp = &(sbi->queues);
while ( (wq = *wqp) ) {
if ( !sane_pointer(wq) ) {
printk("autofs(%s): wait queue pointer corrupt: ", op);
wqp = &(sbi->queues);
do {
wq = *wqp;
printk(" %p", wq);
wqp = &(wq->next);
} while ( sane_pointer(*wqp) );
printk("\n");
*wqp = NULL;
break;
} else {
wqp = &(wq->next);
}
}
}
#endif
/* We make this a static variable rather than a part of the superblock; it
is better if we don't reassign numbers easily even across filesystems */
static int autofs_next_wait_queue = 1;
......@@ -135,8 +95,6 @@ int autofs_wait(struct autofs_sb_info *sbi, autofs_hash_t hash, const char *name
struct autofs_wait_queue *wq;
int status;
CHECK_WAITLIST(sbi,"wait");
for ( wq = sbi->queues ; wq ; wq = wq->next ) {
if ( wq->hash == hash &&
wq->len == len &&
......@@ -165,7 +123,7 @@ int autofs_wait(struct autofs_sb_info *sbi, autofs_hash_t hash, const char *name
sbi->queues = wq;
/* autofs_notify_daemon() may block */
wq->wait_ctr = 1;
wq->wait_ctr = 2;
autofs_notify_daemon(sbi,wq);
} else
wq->wait_ctr++;
......@@ -190,8 +148,6 @@ int autofs_wait_release(struct autofs_sb_info *sbi, unsigned long wait_queue_tok
{
struct autofs_wait_queue *wq, **wql;
CHECK_WAITLIST(sbi,"release");
for ( wql = &sbi->queues ; (wq = *wql) ; wql = &wq->next ) {
if ( wq->wait_queue_token == wait_queue_token )
break;
......@@ -205,7 +161,10 @@ int autofs_wait_release(struct autofs_sb_info *sbi, unsigned long wait_queue_tok
wq->status = status;
wake_up(&wq->queue);
if ( ! --wq->wait_ctr ) /* Is anyone still waiting for this guy? */
kfree(wq);
else
wake_up(&wq->queue);
return 0;
}
......
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