mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Patch: 2.6.10 - CMSPAR in mxser.c undeclared
@ 2004-12-29  8:19 Norbert Tretkowski
  2004-12-29  8:52 ` Al Viro
  2004-12-29 19:56 ` Alan Cox
  0 siblings, 2 replies; 5+ messages in thread
From: Norbert Tretkowski @ 2004-12-29  8:19 UTC (permalink / raw)
  To: linux-kernel

{standard input}: Assembler messages:
{standard input}:5: Warning: setting incorrect section attributes for .got
drivers/char/mxser.c: In function `mxser_ioctl_special':
drivers/char/mxser.c:1564: error: `CMSPAR' undeclared (first use in this function)
drivers/char/mxser.c:1564: error: (Each undeclared identifier is reported only once
drivers/char/mxser.c:1564: error: for each function it appears in.)
make[4]: *** [drivers/char/mxser.o] Error 1
make[3]: *** [drivers/char] Error 2
make[2]: *** [drivers] Error 2


--- drivers/char/mxser.c~       2004-12-24 22:35:14.000000000 +0100
+++ drivers/char/mxser.c        2004-12-29 09:08:59.000000000 +0100
@@ -1561,6 +1561,10 @@

                                mon_data_ext.stopbits[i] = cflag & CSTOPB;

+#ifndef CMSPAR
+#define        CMSPAR 010000000000
+#endif
+
                                mon_data_ext.parity[i] = cflag & (PARENB | PARODD | CMSPAR);

                                mon_data_ext.flowctrl[i] = 0x00;

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Patch: 2.6.10 - CMSPAR in mxser.c undeclared
  2004-12-29  8:19 Patch: 2.6.10 - CMSPAR in mxser.c undeclared Norbert Tretkowski
@ 2004-12-29  8:52 ` Al Viro
  2004-12-29 19:56 ` Alan Cox
  1 sibling, 0 replies; 5+ messages in thread
From: Al Viro @ 2004-12-29  8:52 UTC (permalink / raw)
  To: linux-kernel; +Cc: Linus Torvalds

On Wed, Dec 29, 2004 at 09:19:58AM +0100, Norbert Tretkowski wrote:
> --- drivers/char/mxser.c~       2004-12-24 22:35:14.000000000 +0100
> +++ drivers/char/mxser.c        2004-12-29 09:08:59.000000000 +0100
> @@ -1561,6 +1561,10 @@
> 
>                                 mon_data_ext.stopbits[i] = cflag & CSTOPB;
> 
> +#ifndef CMSPAR
> +#define        CMSPAR 010000000000
> +#endif

a) there's another declaration lower in the file (too low) and it gets
redundant.
b) there are other problems with mxser; patch below had been sent to Linus a
couple of days ago.


diff -urN RC10-delta13/drivers/char/mxser.c RC10-delta14/drivers/char/mxser.c
--- RC10-delta13/drivers/char/mxser.c	Fri Dec 24 20:11:42 2004
+++ RC10-delta14/drivers/char/mxser.c	Mon Dec 27 06:04:22 2004
@@ -401,7 +401,7 @@
 static void mxser_flush_chars(struct tty_struct *);
 static void mxser_put_char(struct tty_struct *, unsigned char);
 static int mxser_ioctl(struct tty_struct *, struct file *, uint, ulong);
-static int mxser_ioctl_special(unsigned int, unsigned long);
+static int mxser_ioctl_special(unsigned int, void __user *);
 static void mxser_throttle(struct tty_struct *);
 static void mxser_unthrottle(struct tty_struct *);
 static void mxser_set_termios(struct tty_struct *, struct termios *);
@@ -417,9 +417,9 @@
 static int mxser_startup(struct mxser_struct *);
 static void mxser_shutdown(struct mxser_struct *);
 static int mxser_change_speed(struct mxser_struct *, struct termios *old_termios);
-static int mxser_get_serial_info(struct mxser_struct *, struct serial_struct *);
-static int mxser_set_serial_info(struct mxser_struct *, struct serial_struct *);
-static int mxser_get_lsr_info(struct mxser_struct *, unsigned int *);
+static int mxser_get_serial_info(struct mxser_struct *, struct serial_struct __user *);
+static int mxser_set_serial_info(struct mxser_struct *, struct serial_struct __user *);
+static int mxser_get_lsr_info(struct mxser_struct *, unsigned int __user *);
 static void mxser_send_break(struct mxser_struct *, int);
 static int mxser_tiocmget(struct tty_struct *, struct file *);
 static int mxser_tiocmset(struct tty_struct *, struct file *, unsigned int, unsigned int);
@@ -834,6 +834,7 @@
 	}
 
 	/* start finding PCI board here */
+#ifdef CONFIG_PCI
 	n = (sizeof(mxser_pcibrds) / sizeof(mxser_pcibrds[0])) - 1;
 	index = 0;
 	b = 0;
@@ -875,6 +876,7 @@
 			m++;
 		}
 	}
+#endif
 
 	ret1 = 0;
 	if (!(ret1 = tty_register_driver(mxvar_sdriver))) {
@@ -968,7 +970,7 @@
 			*tty->termios = info->normal_termios;
 		else
 			*tty->termios = info->callout_termios;
-		mxser_change_speed(info, 0);
+		mxser_change_speed(info, NULL);
 	}
 
 	info->session = current->signal->session;
@@ -1084,7 +1086,7 @@
 		
 	tty->closing = 0;
 	info->event = 0;
-	info->tty = 0;
+	info->tty = NULL;
 	if (info->blocked_open) {
 		if (info->close_delay) {
 			set_current_state(TASK_INTERRUPTIBLE);
@@ -1223,12 +1225,13 @@
 	struct mxser_struct *info = (struct mxser_struct *) tty->driver_data;
 	int retval;
 	struct async_icount cprev, cnow;	/* kernel counter temps */
-	struct serial_icounter_struct *p_cuser;	/* user space */
+	struct serial_icounter_struct __user *p_cuser;
 	unsigned long templ;
 	unsigned long flags;
+	void __user *argp = (void __user *)arg;
 
 	if (tty->index == MXSER_PORTS)
-		return (mxser_ioctl_special(cmd, arg));
+		return (mxser_ioctl_special(cmd, argp));
 
 	// following add by Victor Yu. 01-05-2004
 	if (cmd == MOXA_SET_OP_MODE || cmd == MOXA_GET_OP_MODE) {
@@ -1239,7 +1242,7 @@
 
 		p = info->port % 4;
 		if (cmd == MOXA_SET_OP_MODE) {
-			if (get_user(opmode, (int *) arg))
+			if (get_user(opmode, (int __user *) argp))
 				return -EFAULT;
 			if (opmode != RS232_MODE && opmode != RS485_2WIRE_MODE && opmode != RS422_MODE && opmode != RS485_4WIRE_MODE)
 				return -EFAULT;
@@ -1253,7 +1256,7 @@
 			shiftbit = p * 2;
 			opmode = inb(info->opmode_ioaddr) >> shiftbit;
 			opmode &= OP_MODE_MASK;
-			if (copy_to_user((int *) arg, &opmode, sizeof(int)))
+			if (copy_to_user(argp, &opmode, sizeof(int)))
 				return -EFAULT;
 		}
 		return 0;
@@ -1281,19 +1284,19 @@
 		mxser_send_break(info, arg ? arg * (HZ / 10) : HZ / 4);
 		return (0);
 	case TIOCGSOFTCAR:
-		return put_user(C_CLOCAL(tty) ? 1 : 0, (unsigned long *) arg);
+		return put_user(C_CLOCAL(tty) ? 1 : 0, (unsigned long __user *) argp);
 	case TIOCSSOFTCAR:
-		if (get_user(templ, (unsigned long *) arg))
+		if (get_user(templ, (unsigned long __user *) argp))
 			return -EFAULT;
 		arg = templ;
 		tty->termios->c_cflag = ((tty->termios->c_cflag & ~CLOCAL) | (arg ? CLOCAL : 0));
 		return (0);
 	case TIOCGSERIAL:
-		return (mxser_get_serial_info(info, (struct serial_struct *) arg));
+		return mxser_get_serial_info(info, argp);
 	case TIOCSSERIAL:
-		return (mxser_set_serial_info(info, (struct serial_struct *) arg));
+		return mxser_set_serial_info(info, argp);
 	case TIOCSERGETLSR:	/* Get line status register */
-		return (mxser_get_lsr_info(info, (unsigned int *) arg));
+		return mxser_get_lsr_info(info, argp);
 		/*
 		 * Wait for any of the 4 modem inputs (DCD,RI,DSR,CTS) to change
 		 * - mask passed in arg for lines of interest
@@ -1340,7 +1343,7 @@
 		spin_lock_irqsave(&info->slock, flags);
 		cnow = info->icount;
 		spin_unlock_irqrestore(&info->slock, flags);
-		p_cuser = (struct serial_icounter_struct *) arg;
+		p_cuser = argp;
 		/* modified by casper 1/11/2000 */
 		if (put_user(cnow.frame, &p_cuser->frame))
 			return -EFAULT;
@@ -1364,7 +1367,7 @@
 /* */
 		return 0;
 	case MOXA_HighSpeedOn:
-		return put_user(info->baud_base != 115200 ? 1 : 0, (int *) arg);
+		return put_user(info->baud_base != 115200 ? 1 : 0, (int __user *) argp);
 
 	case MOXA_SDS_RSTICOUNTER:{
 			info->mon_data.rxcnt = 0;
@@ -1374,13 +1377,13 @@
 // (above) added by James.
 	case MOXA_ASPP_SETBAUD:{
 			long baud;
-			if (get_user(baud, (long *) arg))
+			if (get_user(baud, (long __user *) argp))
 				return -EFAULT;
 			mxser_set_baud(info, baud);
 			return 0;
 		}
 	case MOXA_ASPP_GETBAUD:
-		if (copy_to_user((long *) arg, &info->realbaud, sizeof(long)))
+		if (copy_to_user(argp, &info->realbaud, sizeof(long)))
 			return -EFAULT;
 
 		return 0;
@@ -1394,7 +1397,7 @@
 
 			len += (lsr ? 0 : 1);
 
-			if (copy_to_user((int *) arg, &len, sizeof(int)))
+			if (copy_to_user(argp, &len, sizeof(int)))
 				return -EFAULT;
 
 			return 0;
@@ -1423,7 +1426,7 @@
 				info->mon_data.hold_reason &= ~NPPI_NOTIFY_CTSHOLD;
 
 
-			if (copy_to_user((struct mxser_mon *) arg, &(info->mon_data), sizeof(struct mxser_mon)))
+			if (copy_to_user(argp, &info->mon_data, sizeof(struct mxser_mon)))
 				return -EFAULT;
 
 			return 0;
@@ -1431,7 +1434,7 @@
 		}
 
 	case MOXA_ASPP_LSTATUS:{
-			if (copy_to_user((struct mxser_mon *) arg, &(info->err_shadow), sizeof(unsigned char)))
+			if (copy_to_user(argp, &info->err_shadow, sizeof(unsigned char)))
 				return -EFAULT;
 
 			info->err_shadow = 0;
@@ -1440,10 +1443,10 @@
 		}
 	case MOXA_SET_BAUD_METHOD:{
 			int method;
-			if (get_user(method, (int *) arg))
+			if (get_user(method, (int __user *) argp))
 				return -EFAULT;
 			mxser_set_baud_method[info->port] = method;
-			if (copy_to_user((int *) arg, &method, sizeof(int)))
+			if (copy_to_user(argp, &method, sizeof(int)))
 				return -EFAULT;
 
 			return 0;
@@ -1454,22 +1457,26 @@
 	return 0;
 }
 
-static int mxser_ioctl_special(unsigned int cmd, unsigned long arg)
+#ifndef CMSPAR
+#define	CMSPAR 010000000000
+#endif
+
+static int mxser_ioctl_special(unsigned int cmd, void __user *argp)
 {
 	int i, result, status;
 
 	switch (cmd) {
 	case MOXA_GET_CONF:
-		if (copy_to_user((struct mxser_hwconf *) arg, mxsercfg, sizeof(struct mxser_hwconf) * 4))
+		if (copy_to_user(argp, mxsercfg, sizeof(struct mxser_hwconf) * 4))
 			return -EFAULT;
 		return 0;
 	case MOXA_GET_MAJOR:
-		if (copy_to_user((int *) arg, &ttymajor, sizeof(int)))
+		if (copy_to_user(argp, &ttymajor, sizeof(int)))
 			return -EFAULT;
 		return 0;
 
 	case MOXA_GET_CUMAJOR:
-		if (copy_to_user((int *) arg, &calloutmajor, sizeof(int)))
+		if (copy_to_user(argp, &calloutmajor, sizeof(int)))
 			return -EFAULT;
 		return 0;
 
@@ -1479,9 +1486,9 @@
 			if (mxvar_table[i].base)
 				result |= (1 << i);
 		}
-		return put_user(result, (unsigned long *) arg);
+		return put_user(result, (unsigned long __user *) argp);
 	case MOXA_GETDATACOUNT:
-		if (copy_to_user((struct mxser_log *) arg, &mxvar_log, sizeof(mxvar_log)))
+		if (copy_to_user(argp, &mxvar_log, sizeof(mxvar_log)))
 			return -EFAULT;
 		return (0);
 	case MOXA_GETMSTATUS:
@@ -1516,7 +1523,7 @@
 			else
 				GMStatus[i].cts = 0;
 		}
-		if (copy_to_user((struct mxser_mstatus *) arg, GMStatus, sizeof(struct mxser_mstatus) * MXSER_PORTS))
+		if (copy_to_user(argp, GMStatus, sizeof(struct mxser_mstatus) * MXSER_PORTS))
 			return -EFAULT;
 		return 0;
 	case MOXA_ASPP_MON_EXT:{
@@ -1584,7 +1591,7 @@
 				mon_data_ext.iftype[i] = opmode;
 
 			}
-			if (copy_to_user((struct mxser_mon_ext *) arg, &mon_data_ext, sizeof(struct mxser_mon_ext)))
+			if (copy_to_user(argp, &mon_data_ext, sizeof(struct mxser_mon_ext)))
 				return -EFAULT;
 
 			return 0;
@@ -1829,7 +1836,7 @@
 	info->event = 0;
 	info->count = 0;
 	info->flags &= ~ASYNC_NORMAL_ACTIVE;
-	info->tty = 0;
+	info->tty = NULL;
 	wake_up_interruptible(&info->open_wait);
 }
 
@@ -1866,7 +1873,7 @@
 	int pass_counter = 0;
 	int handled = IRQ_NONE;
 
-	port = 0;
+	port = NULL;
 	//spin_lock(&gm_lock);
 
 	for (i = 0; i < MXSER_BOARDS; i++) {
@@ -2412,7 +2419,7 @@
 	 * and set the speed of the serial port
 	 */
 	spin_unlock_irqrestore(&info->slock, flags);
-	mxser_change_speed(info, 0);
+	mxser_change_speed(info, NULL);
 
 	info->flags |= ASYNC_INITIALIZED;
 	return (0);
@@ -2442,7 +2449,7 @@
 	 */
 	if (info->xmit_buf) {
 		free_page((unsigned long) info->xmit_buf);
-		info->xmit_buf = 0;
+		info->xmit_buf = NULL;
 	}
 
 	info->IER = 0;
@@ -2591,9 +2598,6 @@
 		cval |= 0x04;
 	if (cflag & PARENB)
 		cval |= UART_LCR_PARITY;
-#ifndef CMSPAR
-#define	CMSPAR 010000000000
-#endif
 	if (!(cflag & PARODD)) {
 		cval |= UART_LCR_EPAR;
 	}
@@ -2807,7 +2811,7 @@
  * friends of mxser_ioctl()
  * ------------------------------------------------------------
  */
-static int mxser_get_serial_info(struct mxser_struct *info, struct serial_struct *retinfo)
+static int mxser_get_serial_info(struct mxser_struct *info, struct serial_struct __user *retinfo)
 {
 	struct serial_struct tmp;
 
@@ -2829,7 +2833,7 @@
 	return (0);
 }
 
-static int mxser_set_serial_info(struct mxser_struct *info, struct serial_struct *new_info)
+static int mxser_set_serial_info(struct mxser_struct *info, struct serial_struct __user *new_info)
 {
 	struct serial_struct new_serial;
 	unsigned int flags;
@@ -2869,7 +2873,7 @@
 	/* */
 	if (info->flags & ASYNC_INITIALIZED) {
 		if (flags != (info->flags & ASYNC_SPD_MASK)) {
-			mxser_change_speed(info, 0);
+			mxser_change_speed(info, NULL);
 		}
 	} else {
 		retval = mxser_startup(info);
@@ -2887,7 +2891,7 @@
  *	    transmit holding register is empty.  This functionality
  *	    allows an RS485 driver to be written in user space.
  */
-static int mxser_get_lsr_info(struct mxser_struct *info, unsigned int *value)
+static int mxser_get_lsr_info(struct mxser_struct *info, unsigned int __user *value)
 {
 	unsigned char status;
 	unsigned int result;

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Patch: 2.6.10 - CMSPAR in mxser.c undeclared
  2004-12-29  8:19 Patch: 2.6.10 - CMSPAR in mxser.c undeclared Norbert Tretkowski
  2004-12-29  8:52 ` Al Viro
@ 2004-12-29 19:56 ` Alan Cox
  2004-12-29 23:03   ` Al Viro
  1 sibling, 1 reply; 5+ messages in thread
From: Alan Cox @ 2004-12-29 19:56 UTC (permalink / raw)
  To: Norbert Tretkowski; +Cc: Linux Kernel Mailing List

On Mer, 2004-12-29 at 08:19, Norbert Tretkowski wrote:
> {standard input}: Assembler messages:
> {standard input}:5: Warning: setting incorrect section attributes for .got
> drivers/char/mxser.c: In function `mxser_ioctl_special':
> drivers/char/mxser.c:1564: error: `CMSPAR' undeclared (first use in this function)
> drivers/char/mxser.c:1564: error: (Each undeclared identifier is reported only once
> drivers/char/mxser.c:1564: error: for each function it appears in.)

What environment/architecture are you building this on (having built it
myself just fine ?)

Alan


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Patch: 2.6.10 - CMSPAR in mxser.c undeclared
  2004-12-29 19:56 ` Alan Cox
@ 2004-12-29 23:03   ` Al Viro
  2004-12-30  0:15     ` Norbert Tretkowski
  0 siblings, 1 reply; 5+ messages in thread
From: Al Viro @ 2004-12-29 23:03 UTC (permalink / raw)
  To: Alan Cox; +Cc: Norbert Tretkowski, Linux Kernel Mailing List

On Wed, Dec 29, 2004 at 07:56:45PM +0000, Alan Cox wrote:
> On Mer, 2004-12-29 at 08:19, Norbert Tretkowski wrote:
> > {standard input}: Assembler messages:
> > {standard input}:5: Warning: setting incorrect section attributes for .got
> > drivers/char/mxser.c: In function `mxser_ioctl_special':
> > drivers/char/mxser.c:1564: error: `CMSPAR' undeclared (first use in this function)
> > drivers/char/mxser.c:1564: error: (Each undeclared identifier is reported only once
> > drivers/char/mxser.c:1564: error: for each function it appears in.)
> 
> What environment/architecture are you building this on (having built it
> myself just fine ?)

alpha or ppc, for example.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Patch: 2.6.10 - CMSPAR in mxser.c undeclared
  2004-12-29 23:03   ` Al Viro
@ 2004-12-30  0:15     ` Norbert Tretkowski
  0 siblings, 0 replies; 5+ messages in thread
From: Norbert Tretkowski @ 2004-12-30  0:15 UTC (permalink / raw)
  To: Linux Kernel Mailing List

* Al Viro wrote:
> On Wed, Dec 29, 2004 at 07:56:45PM +0000, Alan Cox wrote:
> > On Mer, 2004-12-29 at 08:19, Norbert Tretkowski wrote:
> > > {standard input}: Assembler messages:
> > > {standard input}:5: Warning: setting incorrect section attributes for .got
> > > drivers/char/mxser.c: In function `mxser_ioctl_special':
> > > drivers/char/mxser.c:1564: error: `CMSPAR' undeclared (first use in this function)
> > > drivers/char/mxser.c:1564: error: (Each undeclared identifier is reported only once
> > > drivers/char/mxser.c:1564: error: for each function it appears in.)
> > 
> > What environment/architecture are you building this on (having built it
> > myself just fine ?)
> 
> alpha or ppc, for example.

Yes, alpha.

Norbert

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-12-30  0:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-29  8:19 Patch: 2.6.10 - CMSPAR in mxser.c undeclared Norbert Tretkowski
2004-12-29  8:52 ` Al Viro
2004-12-29 19:56 ` Alan Cox
2004-12-29 23:03   ` Al Viro
2004-12-30  0:15     ` Norbert Tretkowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®