Commit 01371500 authored by Tilman Schmidt's avatar Tilman Schmidt Committed by Linus Torvalds

[PATCH] isdn4linux: Siemens Gigaset drivers: eliminate from_user argument

With Hansjoerg Lipp <hjlipp@web.de>

Eliminate the from_user argument from a debugging function, thus easing the
job of sparse.
Signed-off-by: default avatarHansjoerg Lipp <hjlipp@web.de>
Signed-off-by: default avatarTilman Schmidt <tilman@imap.cc>
Cc: Karsten Keil <kkeil@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 714e8236
...@@ -98,7 +98,7 @@ static inline int lock_loop(unsigned char *src, int numbytes, ...@@ -98,7 +98,7 @@ static inline int lock_loop(unsigned char *src, int numbytes,
struct cardstate *cs = inbuf->cs; struct cardstate *cs = inbuf->cs;
gigaset_dbg_buffer(DEBUG_LOCKCMD, "received response", gigaset_dbg_buffer(DEBUG_LOCKCMD, "received response",
numbytes, src, 0); numbytes, src);
gigaset_if_receive(cs, src, numbytes); gigaset_if_receive(cs, src, numbytes);
return numbytes; return numbytes;
......
...@@ -1756,7 +1756,7 @@ static int gigaset_write_cmd(struct cardstate *cs, ...@@ -1756,7 +1756,7 @@ static int gigaset_write_cmd(struct cardstate *cs,
gigaset_dbg_buffer(atomic_read(&cs->mstate) != MS_LOCKED ? gigaset_dbg_buffer(atomic_read(&cs->mstate) != MS_LOCKED ?
DEBUG_TRANSCMD : DEBUG_LOCKCMD, DEBUG_TRANSCMD : DEBUG_LOCKCMD,
"CMD Transmit", len, buf, 0); "CMD Transmit", len, buf);
if (unlikely(!atomic_read(&cs->connected))) { if (unlikely(!atomic_read(&cs->connected))) {
err("%s: disconnected", __func__); err("%s: disconnected", __func__);
......
...@@ -79,50 +79,34 @@ __u8 gigaset_invtab[256] = { ...@@ -79,50 +79,34 @@ __u8 gigaset_invtab[256] = {
EXPORT_SYMBOL_GPL(gigaset_invtab); EXPORT_SYMBOL_GPL(gigaset_invtab);
void gigaset_dbg_buffer(enum debuglevel level, const unsigned char *msg, void gigaset_dbg_buffer(enum debuglevel level, const unsigned char *msg,
size_t len, const unsigned char *buf, int from_user) size_t len, const unsigned char *buf)
{ {
unsigned char outbuf[80]; unsigned char outbuf[80];
unsigned char inbuf[80 - 1];
unsigned char c; unsigned char c;
size_t numin;
const unsigned char *in;
size_t space = sizeof outbuf - 1; size_t space = sizeof outbuf - 1;
unsigned char *out = outbuf; unsigned char *out = outbuf;
size_t numin = len;
if (!from_user) { while (numin--) {
in = buf;
numin = len;
} else {
numin = len < sizeof inbuf ? len : sizeof inbuf;
in = inbuf;
if (copy_from_user(inbuf, (const unsigned char __user *) buf,
numin)) {
gig_dbg(level, "%s (%u bytes) - copy_from_user failed",
msg, (unsigned) len);
return;
}
}
while (numin-- > 0) {
c = *buf++; c = *buf++;
if (c == '~' || c == '^' || c == '\\') { if (c == '~' || c == '^' || c == '\\') {
if (space-- <= 0) if (!space--)
break; break;
*out++ = '\\'; *out++ = '\\';
} }
if (c & 0x80) { if (c & 0x80) {
if (space-- <= 0) if (!space--)
break; break;
*out++ = '~'; *out++ = '~';
c ^= 0x80; c ^= 0x80;
} }
if (c < 0x20 || c == 0x7f) { if (c < 0x20 || c == 0x7f) {
if (space-- <= 0) if (!space--)
break; break;
*out++ = '^'; *out++ = '^';
c ^= 0x40; c ^= 0x40;
} }
if (space-- <= 0) if (!space--)
break; break;
*out++ = c; *out++ = c;
} }
......
...@@ -154,7 +154,7 @@ enum debuglevel { /* up to 24 bits (atomic_t) */ ...@@ -154,7 +154,7 @@ enum debuglevel { /* up to 24 bits (atomic_t) */
#endif #endif
void gigaset_dbg_buffer(enum debuglevel level, const unsigned char *msg, void gigaset_dbg_buffer(enum debuglevel level, const unsigned char *msg,
size_t len, const unsigned char *buf, int from_user); size_t len, const unsigned char *buf);
/* connection state */ /* connection state */
#define ZSAU_NONE 0 #define ZSAU_NONE 0
......
...@@ -246,8 +246,6 @@ static int if_ioctl(struct tty_struct *tty, struct file *file, ...@@ -246,8 +246,6 @@ static int if_ioctl(struct tty_struct *tty, struct file *file,
break; break;
case GIGASET_BRKCHARS: case GIGASET_BRKCHARS:
//FIXME test if MS_LOCKED //FIXME test if MS_LOCKED
gigaset_dbg_buffer(DEBUG_IF, "GIGASET_BRKCHARS",
6, (const unsigned char *) arg, 1);
if (!atomic_read(&cs->connected)) { if (!atomic_read(&cs->connected)) {
gig_dbg(DEBUG_ANY, gig_dbg(DEBUG_ANY,
"can't communicate with unplugged device"); "can't communicate with unplugged device");
...@@ -257,8 +255,11 @@ static int if_ioctl(struct tty_struct *tty, struct file *file, ...@@ -257,8 +255,11 @@ static int if_ioctl(struct tty_struct *tty, struct file *file,
retval = copy_from_user(&buf, retval = copy_from_user(&buf,
(const unsigned char __user *) arg, 6) (const unsigned char __user *) arg, 6)
? -EFAULT : 0; ? -EFAULT : 0;
if (retval >= 0) if (retval >= 0) {
gigaset_dbg_buffer(DEBUG_IF, "GIGASET_BRKCHARS",
6, (const unsigned char *) arg);
retval = cs->ops->brkchars(cs, buf); retval = cs->ops->brkchars(cs, buf);
}
break; break;
case GIGASET_VERSION: case GIGASET_VERSION:
retval = copy_from_user(version, retval = copy_from_user(version,
......
...@@ -957,11 +957,11 @@ void gigaset_isoc_input(struct inbuf_t *inbuf) ...@@ -957,11 +957,11 @@ void gigaset_isoc_input(struct inbuf_t *inbuf)
if (atomic_read(&cs->mstate) == MS_LOCKED) { if (atomic_read(&cs->mstate) == MS_LOCKED) {
gigaset_dbg_buffer(DEBUG_LOCKCMD, "received response", gigaset_dbg_buffer(DEBUG_LOCKCMD, "received response",
numbytes, src, 0); numbytes, src);
gigaset_if_receive(inbuf->cs, src, numbytes); gigaset_if_receive(inbuf->cs, src, numbytes);
} else { } else {
gigaset_dbg_buffer(DEBUG_CMD, "received response", gigaset_dbg_buffer(DEBUG_CMD, "received response",
numbytes, src, 0); numbytes, src);
cmd_loop(src, numbytes, inbuf); cmd_loop(src, numbytes, inbuf);
} }
......
...@@ -500,7 +500,7 @@ static int gigaset_write_cmd(struct cardstate *cs, const unsigned char *buf, ...@@ -500,7 +500,7 @@ static int gigaset_write_cmd(struct cardstate *cs, const unsigned char *buf,
gigaset_dbg_buffer(atomic_read(&cs->mstate) != MS_LOCKED ? gigaset_dbg_buffer(atomic_read(&cs->mstate) != MS_LOCKED ?
DEBUG_TRANSCMD : DEBUG_LOCKCMD, DEBUG_TRANSCMD : DEBUG_LOCKCMD,
"CMD Transmit", len, buf, 0); "CMD Transmit", len, buf);
if (!atomic_read(&cs->connected)) { if (!atomic_read(&cs->connected)) {
err("%s: not connected", __func__); err("%s: not connected", __func__);
...@@ -559,7 +559,7 @@ static int gigaset_brkchars(struct cardstate *cs, const unsigned char buf[6]) ...@@ -559,7 +559,7 @@ static int gigaset_brkchars(struct cardstate *cs, const unsigned char buf[6])
#ifdef CONFIG_GIGASET_UNDOCREQ #ifdef CONFIG_GIGASET_UNDOCREQ
struct usb_device *udev = cs->hw.usb->udev; struct usb_device *udev = cs->hw.usb->udev;
gigaset_dbg_buffer(DEBUG_USBREQ, "brkchars", 6, buf, 0); gigaset_dbg_buffer(DEBUG_USBREQ, "brkchars", 6, buf);
memcpy(cs->hw.usb->bchars, buf, 6); memcpy(cs->hw.usb->bchars, buf, 6);
return usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0x19, 0x41, return usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0x19, 0x41,
0, 0, &buf, 6, 2000); 0, 0, &buf, 6, 2000);
......
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