Skip to contentSkip to conversation

drivers/staging/dgrp/dgrp_net_ops.c:229:8: error: 'struct tty_struct' has no member named 'read_cnt'

PATCH In review Fengguang Wu 4 participants 5 messages Oct 23, 2012 – Oct 27, 2012 TTY layer and serial drivers

lore
Share & tools
lore
#0 lore raw

PATCH 17/23 drivers/staging/dgrp/dgrp_net_ops.c:229:8: error: 'struct tty_struct' has no member named 'read_cnt'

Hi Jiri,

FYI, kernel build failed on

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-next
head:   ecbbfd44a08fa80e0d664814efd4c187721b85f6
commit: ba2e68ac6157004ee4922fb39ebd9459bbae883e [17/23] TTY: move ldisc data from tty_struct: read_* and echo_* and canon_* stuff
config: x86_64-allmodconfig # make ARCH=x86_64 allmodconfig

All error/warnings:

drivers/staging/dgrp/dgrp_net_ops.c: In function 'dgrp_input':
drivers/staging/dgrp/dgrp_net_ops.c:216:27: error: 'struct tty_struct' has no member named 'real_raw' drivers/staging/dgrp/dgrp_net_ops.c:229:8: error: 'struct tty_struct' has no member named 'read_cnt' drivers/staging/dgrp/dgrp_net_ops.c:229:8: error: 'struct tty_struct' has no member named 'read_cnt' drivers/staging/dgrp/dgrp_net_ops.c:261:30: error: 'struct tty_struct' has no member named 'real_raw' drivers/staging/dgrp/dgrp_net_ops.c:276:28: error: 'struct tty_struct' has no member named 'real_raw'

vim +229 drivers/staging/dgrp/dgrp_net_ops.c

0b52b749 Bill Pemberton 2012-09-20 228 /* take into consideration length of ldisc */
0b52b749 Bill Pemberton 2012-09-20 @229 len = min(len, (N_TTY_BUF_SIZE - 1) - tty->read_cnt);

---
0-DAY kernel build testing backend Open Source Technology Center
Fengguang Wu, Yuanhan Liu Intel Corporation

#1 lore raw
Quoted 18 lines · On Tue, 23 Oct 2012 10:30:54 +0800 Fengguang Wu <[email protected]> wrote:

Hi Jiri,

FYI, kernel build failed on

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-next
head:   ecbbfd44a08fa80e0d664814efd4c187721b85f6
commit: ba2e68ac6157004ee4922fb39ebd9459bbae883e [17/23] TTY: move ldisc data from tty_struct: read_* and echo_* and canon_* stuff
config: x86_64-allmodconfig # make ARCH=x86_64 allmodconfig

All error/warnings:

drivers/staging/dgrp/dgrp_net_ops.c: In function 'dgrp_input':
drivers/staging/dgrp/dgrp_net_ops.c:216:27: error: 'struct tty_struct' has no member named 'real_raw' drivers/staging/dgrp/dgrp_net_ops.c:229:8: error: 'struct tty_struct' has no member named 'read_cnt' drivers/staging/dgrp/dgrp_net_ops.c:229:8: error: 'struct tty_struct' has no member named 'read_cnt' drivers/staging/dgrp/dgrp_net_ops.c:261:30: error: 'struct tty_struct' has no member named 'real_raw' drivers/staging/dgrp/dgrp_net_ops.c:276:28: error: 'struct tty_struct' has no member named 'real_raw'

Quoted 4 lines

vim +229 drivers/staging/dgrp/dgrp_net_ops.c

0b52b749 Bill Pemberton 2012-09-20 228 /* take into consideration length of ldisc */
0b52b749 Bill Pemberton 2012-09-20 @229 len = min(len, (N_TTY_BUF_SIZE - 1) - tty->read_cnt);

This is broken and unsafe. It's always been broken and unsafe. Probably the report wants directing to whoever signed up to fix it all in staging.

Alan

#2 lore raw
Quoted 21 lines · Alan Cox
Quoted 18 lines · On Tue, 23 Oct 2012 10:30:54 +0800 Fengguang Wu <[email protected]> wrote:

Hi Jiri,

FYI, kernel build failed on

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-next
head:   ecbbfd44a08fa80e0d664814efd4c187721b85f6
commit: ba2e68ac6157004ee4922fb39ebd9459bbae883e [17/23] TTY: move ldisc data from tty_struct: read_* and echo_* and canon_* stuff
config: x86_64-allmodconfig # make ARCH=x86_64 allmodconfig

All error/warnings:

drivers/staging/dgrp/dgrp_net_ops.c: In function 'dgrp_input':
drivers/staging/dgrp/dgrp_net_ops.c:216:27: error: 'struct tty_struct' has no member named 'real_raw' drivers/staging/dgrp/dgrp_net_ops.c:229:8: error: 'struct tty_struct' has no member named 'read_cnt' drivers/staging/dgrp/dgrp_net_ops.c:229:8: error: 'struct tty_struct' has no member named 'read_cnt' drivers/staging/dgrp/dgrp_net_ops.c:261:30: error: 'struct tty_struct' has no member named 'real_raw' drivers/staging/dgrp/dgrp_net_ops.c:276:28: error: 'struct tty_struct' has no member named 'real_raw'

Quoted 7 lines
Quoted 4 lines

vim +229 drivers/staging/dgrp/dgrp_net_ops.c

0b52b749 Bill Pemberton 2012-09-20 228 /* take into consideration length of ldisc */
0b52b749 Bill Pemberton 2012-09-20 @229 len = min(len, (N_TTY_BUF_SIZE - 1) - tty->read_cnt);

This is broken and unsafe. It's always been broken and unsafe. Probably the report wants directing to whoever signed up to fix it all in staging.

Add CC to Bill. Alan, thanks for the suggestion!

As for the build system, it perhaps can hardly be more smart than notifying the contacts for the commit that *directly* triggered the build errors (bisected first bad commit is not necessary the root cause). It relies on the CCed developers to figure out the real problem and if necessary, add more CC list.

Thanks,
Fengguang

#3 lore raw
In reply to Alan Cox
Quoted 21 lines · Alan Cox
Quoted 18 lines · On Tue, 23 Oct 2012 10:30:54 +0800 Fengguang Wu <[email protected]> wrote:

Hi Jiri,

FYI, kernel build failed on

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-next
head:   ecbbfd44a08fa80e0d664814efd4c187721b85f6
commit: ba2e68ac6157004ee4922fb39ebd9459bbae883e [17/23] TTY: move ldisc data from tty_struct: read_* and echo_* and canon_* stuff
config: x86_64-allmodconfig # make ARCH=x86_64 allmodconfig

All error/warnings:

drivers/staging/dgrp/dgrp_net_ops.c: In function 'dgrp_input':
drivers/staging/dgrp/dgrp_net_ops.c:216:27: error: 'struct tty_struct' has no member named 'real_raw' drivers/staging/dgrp/dgrp_net_ops.c:229:8: error: 'struct tty_struct' has no member named 'read_cnt' drivers/staging/dgrp/dgrp_net_ops.c:229:8: error: 'struct tty_struct' has no member named 'read_cnt' drivers/staging/dgrp/dgrp_net_ops.c:261:30: error: 'struct tty_struct' has no member named 'real_raw' drivers/staging/dgrp/dgrp_net_ops.c:276:28: error: 'struct tty_struct' has no member named 'real_raw'

Quoted 7 lines
Quoted 4 lines

vim +229 drivers/staging/dgrp/dgrp_net_ops.c

0b52b749 Bill Pemberton 2012-09-20 228 /* take into consideration length of ldisc */
0b52b749 Bill Pemberton 2012-09-20 @229 len = min(len, (N_TTY_BUF_SIZE - 1) - tty->read_cnt);

This is broken and unsafe. It's always been broken and unsafe. Probably the report wants directing to whoever signed up to fix it all in staging.

And that function looks strange alltogether. It's like it's trying to optimize in case of raw TTY by sending the data directly to ldisc. In a completely racy way. I think that it should remain marked as BROKEN until this is converted to tty_prepare_flip_string.

Or is there any use-case this optimization makes a difference?

thanks,

Signature · 2 lines
js
suse labs
#4 lore raw
Quoted 27 lines · Jiri Slaby
Quoted 26 lines · Alan Cox
Quoted 22 lines · On Tue, 23 Oct 2012 10:30:54 +0800 Fengguang Wu <[email protected]> wrote:

Hi Jiri,

FYI, kernel build failed on

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-next
head:   ecbbfd44a08fa80e0d664814efd4c187721b85f6
commit: ba2e68ac6157004ee4922fb39ebd9459bbae883e [17/23] TTY: move ldisc data from tty_struct: read_* and echo_* and canon_* stuff
config: x86_64-allmodconfig # make ARCH=x86_64 allmodconfig

All error/warnings:

drivers/staging/dgrp/dgrp_net_ops.c: In function 'dgrp_input':
drivers/staging/dgrp/dgrp_net_ops.c:216:27: error: 'struct tty_struct' has no member named 'real_raw' drivers/staging/dgrp/dgrp_net_ops.c:229:8: error: 'struct tty_struct' has no member named 'read_cnt' drivers/staging/dgrp/dgrp_net_ops.c:229:8: error: 'struct tty_struct' has no member named 'read_cnt' drivers/staging/dgrp/dgrp_net_ops.c:261:30: error: 'struct tty_struct' has no member named 'real_raw' drivers/staging/dgrp/dgrp_net_ops.c:276:28: error: 'struct tty_struct' has no member named 'real_raw'

vim +229 drivers/staging/dgrp/dgrp_net_ops.c

0b52b749 Bill Pemberton 2012-09-20 228 /* take into consideration length of ldisc */
0b52b749 Bill Pemberton 2012-09-20 @229 len = min(len, (N_TTY_BUF_SIZE - 1) - tty->read_cnt);

Quoted 7 lines
Quoted 2 lines

This is broken and unsafe. It's always been broken and unsafe. Probably the report wants directing to whoever signed up to fix it all in staging.

And that function looks strange alltogether. It's like it's trying to optimize in case of raw TTY by sending the data directly to ldisc. In a completely racy way. I think that it should remain marked as BROKEN until this is converted to tty_prepare_flip_string.

That code has been ripped out of the driver now, and it builds fine in my tree, so the BROKEN marking linux-next can be removed.

thanks,

greg k-h