summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1998-03-03 01:22:27 +0000
committerRalf Baechle <ralf@linux-mips.org>1998-03-03 01:22:27 +0000
commitf9bbe9da79dbc8557c74efeb158b431cd67ace52 (patch)
tree3220d014a35f9d88a48668a1468524e988daebff /kernel
parent3d697109c1ff85ef563aec3d5e113ef225ed2792 (diff)
Upgrade to 2.1.73.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/ksyms.c2
-rw-r--r--kernel/printk.c9
-rw-r--r--kernel/signal.c5
3 files changed, 13 insertions, 3 deletions
diff --git a/kernel/ksyms.c b/kernel/ksyms.c
index c9cf990e2..a66acd361 100644
--- a/kernel/ksyms.c
+++ b/kernel/ksyms.c
@@ -202,6 +202,7 @@ EXPORT_SYMBOL(put_cached_page);
EXPORT_SYMBOL(prune_dcache);
EXPORT_SYMBOL(shrink_dcache_sb);
EXPORT_SYMBOL(shrink_dcache_parent);
+EXPORT_SYMBOL(find_inode_number);
#if !defined(CONFIG_NFSD) && defined(CONFIG_NFSD_MODULE)
EXPORT_SYMBOL(do_nfsservctl);
@@ -239,6 +240,7 @@ EXPORT_SYMBOL(make_request);
EXPORT_SYMBOL(tq_disk);
EXPORT_SYMBOL(efind_buffer);
EXPORT_SYMBOL(init_buffer);
+EXPORT_SYMBOL(max_sectors);
/* tty routines */
EXPORT_SYMBOL(tty_hangup);
diff --git a/kernel/printk.c b/kernel/printk.c
index c67c4d748..91bc771f2 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -109,7 +109,7 @@ __initfunc(void console_setup(char *str, int *ints))
*/
asmlinkage int sys_syslog(int type, char * buf, int len)
{
- unsigned long i, j, count;
+ unsigned long i, j, count, flags;
int do_clear = 0;
char c;
int error = -EPERM;
@@ -170,12 +170,19 @@ asmlinkage int sys_syslog(int type, char * buf, int len)
error = verify_area(VERIFY_WRITE,buf,len);
if (error)
goto out;
+ /*
+ * The logged_chars, log_start, and log_size values may
+ * change from an interrupt, so we disable interrupts.
+ */
+ __save_flags(flags);
+ __cli();
count = len;
if (count > LOG_BUF_LEN)
count = LOG_BUF_LEN;
if (count > logged_chars)
count = logged_chars;
j = log_start + log_size - count;
+ __restore_flags(flags);
for (i = 0; i < count; i++) {
c = *((char *) log_buf+(j++ & (LOG_BUF_LEN-1)));
__put_user(c, buf++);
diff --git a/kernel/signal.c b/kernel/signal.c
index 03e64eed6..25168d989 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -118,14 +118,15 @@ printk("SIG dequeue (%s:%d): %d ", current->comm, current->pid,
case 2: if ((x = s[0] &~ m[0]) != 0)
sig = 1;
- else if ((x = s[1] &~ m[0]) != 0)
+ else if ((x = s[1] &~ m[1]) != 0)
sig = _NSIG_BPW + 1;
else
break;
sig += ffz(~x);
break;
- case 1: if ((x = *s &~ *m) != 0) sig = ffz(~x) + 1;
+ case 1: if ((x = *s &~ *m) != 0)
+ sig = ffz(~x) + 1;
break;
}