|
@@ -941,17 +941,6 @@ static void* mgsl_get_text_ptr(void)
|
|
|
return mgsl_get_text_ptr;
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * tmp_buf is used as a temporary buffer by mgsl_write. We need to
|
|
|
- * lock it in case the COPY_FROM_USER blocks while swapping in a page,
|
|
|
- * and some other program tries to do a serial write at the same time.
|
|
|
- * Since the lock will only come under contention when the system is
|
|
|
- * swapping and available memory is low, it makes sense to share one
|
|
|
- * buffer across all the serial ioports, since it significantly saves
|
|
|
- * memory if large numbers of serial ports are open.
|
|
|
- */
|
|
|
-static unsigned char *tmp_buf;
|
|
|
-
|
|
|
static inline int mgsl_paranoia_check(struct mgsl_struct *info,
|
|
|
char *name, const char *routine)
|
|
|
{
|
|
@@ -2150,7 +2139,7 @@ static int mgsl_write(struct tty_struct * tty,
|
|
|
if (mgsl_paranoia_check(info, tty->name, "mgsl_write"))
|
|
|
goto cleanup;
|
|
|
|
|
|
- if (!tty || !info->xmit_buf || !tmp_buf)
|
|
|
+ if (!tty || !info->xmit_buf)
|
|
|
goto cleanup;
|
|
|
|
|
|
if ( info->params.mode == MGSL_MODE_HDLC ||
|
|
@@ -3438,7 +3427,6 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp)
|
|
|
{
|
|
|
struct mgsl_struct *info;
|
|
|
int retval, line;
|
|
|
- unsigned long page;
|
|
|
unsigned long flags;
|
|
|
|
|
|
/* verify range of specified line number */
|
|
@@ -3472,18 +3460,6 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp)
|
|
|
goto cleanup;
|
|
|
}
|
|
|
|
|
|
- if (!tmp_buf) {
|
|
|
- page = get_zeroed_page(GFP_KERNEL);
|
|
|
- if (!page) {
|
|
|
- retval = -ENOMEM;
|
|
|
- goto cleanup;
|
|
|
- }
|
|
|
- if (tmp_buf)
|
|
|
- free_page(page);
|
|
|
- else
|
|
|
- tmp_buf = (unsigned char *) page;
|
|
|
- }
|
|
|
-
|
|
|
info->tty->low_latency = (info->flags & ASYNC_LOW_LATENCY) ? 1 : 0;
|
|
|
|
|
|
spin_lock_irqsave(&info->netlock, flags);
|
|
@@ -4502,11 +4478,6 @@ static void synclink_cleanup(void)
|
|
|
kfree(tmp);
|
|
|
}
|
|
|
|
|
|
- if (tmp_buf) {
|
|
|
- free_page((unsigned long) tmp_buf);
|
|
|
- tmp_buf = NULL;
|
|
|
- }
|
|
|
-
|
|
|
if (pci_registered)
|
|
|
pci_unregister_driver(&synclink_pci_driver);
|
|
|
}
|