* Linux 2.4.18-pre2
@ 2002-01-07 23:38 Marcelo Tosatti
2002-01-08 21:20 ` Rasmus Andersen
0 siblings, 1 reply; 4+ messages in thread
From: Marcelo Tosatti @ 2002-01-07 23:38 UTC (permalink / raw)
To: lkml
Hi,
Here goes pre2.
pre2:
- APIC LVTERR fixes (Mikael Pettersson)
- Fix ppdev ioctl oops and deadlock (Tim Waugh)
- parport fixes (Tim Waugh)
- orinoco wireless driver update (David Gibson)
- Fix oopsable race in binfmt_elf.c (Alexander Viro)
- Small sx16 driver bugfix (Heinz-Ado Arnolds)
- sbp2 deadlock fix (Andrew Morton)
- Fix JFFS2 write error handling (David Woodhouse)
- Intermezzo update (Peter J. Braam)
- Proper AGP support for Intel 830MP chipsets (Nicolas Aspert)
- Alpha fixes (Jay Estabrook)
- 53c700 SCSI driver update (James Bottomley)
- Fix coredump mmap_sem deadlock on IA64 (David Mosberger)
- 3ware driver update (Adam Radford)
- Fix elevator insertion point on failed
request merge (Jens Axboe)
- Remove bogus rpciod_tcp_dispatcher definition (David Woodhouse)
- Reiserfs fixes (Oleg Drokin)
- de4x5 endianess fixes (Kip Walker)
- ISDN CAPI cleanup (Kai Germaschewski)
- Make refill_inactive() correctly account
progress (me)
pre1:
- S390 merge (IBM)
- SuperH merge (SuperH team)
- PPC merge (Benjamin Herrenschmidt)
- PCI DMA update (David S. Miller)
- radeonfb update (Ani Joshi)
- aty128fb update (Ani Joshi)
- Add nVidia GeForce3 support to rivafb (Ani Joshi)
- Add PM support to opl3sa2 (Zwane Mwaikambo)
- Basic ethtool support for 3com, starfire
and pcmcia net drivers (Jeff Garzik)
- Add MII ethtool interface (Jeff Garzik)
- starfire,sundance,dl2k,sis900,8139{too,cp},
natsemi driver updates (Jeff Garzik)
- ufs/minix: mark inodes as bad in case of read
failure (Christoph Hellwig)
- ReiserFS fixes (Oleg Drokin)
- sonypi update (Stelian Pop)
- n_hdlc update (Paul Fulghum)
- Fix compile error on aty_base.c (Tobias Ringstrom)
- Document cpu_to_xxxx() on kernel-hacking doc (Rusty Russell)
- USB update (Greg KH)
- Fix sysctl console loglevel bug on
IA64 (and possibly other archs) (Jesper Juhl)
- Update Athlon/VIA PCI quirks (Calin A. Culianu)
- blkmtd update (Simon Evans)
- boot protocol update (makes the highest
possible initrd address available to the
bootloader) (H. Peter Anvin)
- NFS fixes (Trond Myklebust)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Linux 2.4.18-pre2
@ 2002-01-08 3:23 Louis Garcia
2002-01-08 22:02 ` Erik Andersen
0 siblings, 1 reply; 4+ messages in thread
From: Louis Garcia @ 2002-01-08 3:23 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 150 bytes --]
The radeonfb is still broken from the update in pre1. I have attached
the missing parts of that update. This is from Ani Joshi himself.
--Louis
[-- Attachment #2: radeonfb-updatefix.patch.bz2 --]
[-- Type: application/x-bzip, Size: 1144 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Linux 2.4.18-pre2
2002-01-07 23:38 Marcelo Tosatti
@ 2002-01-08 21:20 ` Rasmus Andersen
0 siblings, 0 replies; 4+ messages in thread
From: Rasmus Andersen @ 2002-01-08 21:20 UTC (permalink / raw)
To: Marcelo Tosatti; +Cc: lkml
Hi Marcelo.
This is a resend of a patch I sent you earlier, rediffed. Explanation
below.
---
The following patch makes drivers/char/generic_serial.c check the
return code of copy_{from,to}_user, coverts a cli/sti to
save_flags/cli/restore_flags and does some minor cleanup. It
also makes the rio_linux, serial_tx3912, sh-sci and sx drivers
propagate the copy_xxx_user return codes upwards.
The patch has been blessed by Rogier Wolff, the maintainer.
---
diff -uar linux-2418p2-clean/drivers/char/generic_serial.c linux-2418p2/drivers/char/generic_serial.c
--- linux-2418p2-clean/drivers/char/generic_serial.c Fri Sep 14 00:21:32 2001
+++ linux-2418p2/drivers/char/generic_serial.c Tue Jan 8 22:10:22 2002
@@ -143,7 +143,12 @@
/* Can't copy more? break out! */
if (c <= 0) break;
if (from_user)
- copy_from_user (port->xmit_buf + port->xmit_head, buf, c);
+ if (copy_from_user (port->xmit_buf + port->xmit_head,
+ buf, c)) {
+ up (& port->port_write_sem);
+ return -EFAULT;
+ }
+
else
memcpy (port->xmit_buf + port->xmit_head, buf, c);
@@ -214,8 +219,13 @@
while (1) {
c = count;
- /* This is safe because we "OWN" the "head". Noone else can
- change the "head": we own the port_write_sem. */
+ /* Note: This part can be done without
+ * interrupt routine protection since
+ * the interrupt routines may only modify
+ * shared variables in safe ways, in the worst
+ * case causing us to loop twice in the code
+ * below. See comments below. */
+
/* Don't overrun the end of the buffer */
t = SERIAL_XMIT_SIZE - port->xmit_head;
if (t < c) c = t;
@@ -506,7 +516,7 @@
void gs_shutdown_port (struct gs_port *port)
{
- long flags;
+ unsigned long flags;
func_enter();
@@ -589,6 +599,7 @@
int do_clocal = 0;
int CD;
struct tty_struct *tty;
+ unsigned long flags;
func_enter ();
@@ -604,7 +615,7 @@
* until it's done, and then try again.
*/
if (tty_hung_up_p(filp) || port->flags & ASYNC_CLOSING) {
- interruptible_sleep_on(&port->close_wait);
+ interruptible_sleep_on(&port->close_wait);
if (port->flags & ASYNC_HUP_NOTIFY)
return -EAGAIN;
else
@@ -668,10 +679,11 @@
add_wait_queue(&port->open_wait, &wait);
gs_dprintk (GS_DEBUG_BTR, "after add waitq.\n");
+ save_flags(flags);
cli();
if (!tty_hung_up_p(filp))
port->count--;
- sti();
+ restore_flags(flags);
port->blocked_open++;
while (1) {
CD = port->rd->get_CD (port);
@@ -1003,7 +1015,8 @@
{
struct serial_struct sio;
- copy_from_user(&sio, sp, sizeof(struct serial_struct));
+ if (copy_from_user(&sio, sp, sizeof(struct serial_struct)))
+ return(-EFAULT);
if (!capable(CAP_SYS_ADMIN)) {
if ((sio.baud_base != port->baud_base) ||
@@ -1033,7 +1046,7 @@
* Generate the serial struct info.
*/
-void gs_getserial(struct gs_port *port, struct serial_struct *sp)
+int gs_getserial(struct gs_port *port, struct serial_struct *sp)
{
struct serial_struct sio;
@@ -1055,7 +1068,10 @@
if (port->rd->getserial)
port->rd->getserial (port, &sio);
- copy_to_user(sp, &sio, sizeof(struct serial_struct));
+ if (copy_to_user(sp, &sio, sizeof(struct serial_struct)))
+ return -EFAULT;
+ return 0;
+
}
diff -uar linux-2418p2-clean/drivers/char/rio/rio_linux.c linux-2418p2/drivers/char/rio/rio_linux.c
--- linux-2418p2-clean/drivers/char/rio/rio_linux.c Thu Oct 25 22:53:47 2001
+++ linux-2418p2/drivers/char/rio/rio_linux.c Tue Jan 8 22:10:22 2002
@@ -742,7 +742,7 @@
case TIOCGSERIAL:
if ((rc = verify_area(VERIFY_WRITE, (void *) arg,
sizeof(struct serial_struct))) == 0)
- gs_getserial(&PortP->gs, (struct serial_struct *) arg);
+ rc = gs_getserial(&PortP->gs, (struct serial_struct *) arg);
break;
case TCSBRK:
if ( PortP->State & RIO_DELETED ) {
diff -uar linux-2418p2-clean/drivers/char/serial_tx3912.c linux-2418p2/drivers/char/serial_tx3912.c
--- linux-2418p2-clean/drivers/char/serial_tx3912.c Fri Nov 9 23:01:21 2001
+++ linux-2418p2/drivers/char/serial_tx3912.c Tue Jan 8 22:10:22 2002
@@ -673,7 +673,7 @@
case TIOCGSERIAL:
if ((rc = verify_area(VERIFY_WRITE, (void *) arg,
sizeof(struct serial_struct))) == 0)
- gs_getserial(&port->gs, (struct serial_struct *) arg);
+ rc = gs_getserial(&port->gs, (struct serial_struct *) arg);
break;
case TIOCSSERIAL:
if ((rc = verify_area(VERIFY_READ, (void *) arg,
diff -uar linux-2418p2-clean/drivers/char/sh-sci.c linux-2418p2/drivers/char/sh-sci.c
--- linux-2418p2-clean/drivers/char/sh-sci.c Mon Oct 15 22:36:48 2001
+++ linux-2418p2/drivers/char/sh-sci.c Tue Jan 8 22:10:22 2002
@@ -919,7 +919,7 @@
case TIOCGSERIAL:
if ((rc = verify_area(VERIFY_WRITE, (void *) arg,
sizeof(struct serial_struct))) == 0)
- gs_getserial(&port->gs, (struct serial_struct *) arg);
+ rc = gs_getserial(&port->gs, (struct serial_struct *) arg);
break;
case TIOCSSERIAL:
if ((rc = verify_area(VERIFY_READ, (void *) arg,
diff -uar linux-2418p2-clean/drivers/char/sx.c linux-2418p2/drivers/char/sx.c
--- linux-2418p2-clean/drivers/char/sx.c Tue Jan 8 22:09:24 2002
+++ linux-2418p2/drivers/char/sx.c Tue Jan 8 22:10:22 2002
@@ -1817,7 +1817,7 @@
case TIOCGSERIAL:
if ((rc = verify_area(VERIFY_WRITE, (void *) arg,
sizeof(struct serial_struct))) == 0)
- gs_getserial(&port->gs, (struct serial_struct *) arg);
+ rc = gs_getserial(&port->gs, (struct serial_struct *) arg);
break;
case TIOCSSERIAL:
if ((rc = verify_area(VERIFY_READ, (void *) arg,
Only in linux-2418p2/drivers/char: sx.c~
diff -uar linux-2418p2-clean/include/linux/generic_serial.h linux-2418p2/include/linux/generic_serial.h
--- linux-2418p2-clean/include/linux/generic_serial.h Fri Sep 7 18:28:38 2001
+++ linux-2418p2/include/linux/generic_serial.h Tue Jan 8 22:10:22 2002
@@ -12,9 +12,6 @@
#ifndef GENERIC_SERIAL_H
#define GENERIC_SERIAL_H
-
-
-
struct real_driver {
void (*disable_tx_interrupts) (void *);
void (*enable_tx_interrupts) (void *);
@@ -98,7 +95,7 @@
struct termios * old_termios);
int gs_init_port(struct gs_port *port);
int gs_setserial(struct gs_port *port, struct serial_struct *sp);
-void gs_getserial(struct gs_port *port, struct serial_struct *sp);
+int gs_getserial(struct gs_port *port, struct serial_struct *sp);
void gs_got_break(struct gs_port *port);
extern int gs_debug;
Regards,
Rasmus
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Linux 2.4.18-pre2
2002-01-08 3:23 Linux 2.4.18-pre2 Louis Garcia
@ 2002-01-08 22:02 ` Erik Andersen
0 siblings, 0 replies; 4+ messages in thread
From: Erik Andersen @ 2002-01-08 22:02 UTC (permalink / raw)
To: Louis Garcia; +Cc: linux-kernel
On Mon Jan 07, 2002 at 10:23:25PM -0500, Louis Garcia wrote:
> The radeonfb is still broken from the update in pre1. I have attached
> the missing parts of that update. This is from Ani Joshi himself.
Also looks like drivers/video/radeonfb.c needs to be fixed
to cope with newer binutils....
+#ifdef MODULE
remove: radeonfb_pci_unregister,
+#endif
-Erik
--
Erik B. Andersen http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2002-01-08 22:03 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-01-08 3:23 Linux 2.4.18-pre2 Louis Garcia
2002-01-08 22:02 ` Erik Andersen
-- strict thread matches above, loose matches on Subject: below --
2002-01-07 23:38 Marcelo Tosatti
2002-01-08 21:20 ` Rasmus Andersen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox