Menu

#62 ni_usb_gpib (and more?) broken if kernel feature CONFIG_VMAP_STACK is set (default in 4.9 and later?)

v1.0 (example)
closed-fixed
nobody
None
5
2020-04-18
2017-05-29
No

All device access fails. Example:

hana ~ # ibterm -d 1
Attempting to open /dev/gpib0
pad = 1, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000
libgpib: IBOPENDEV ioctl failed
libgpib: error in is_cic()!
ibterm error: open failed
- EDVR 0: OS error
ibdev error
ibterm: Aborted

From dmesg:

[    4.347778] Linux-GPIB 4.0.3 Driver
[    4.348568] ni_usb_gpib driver loading
[    4.348578] ni_usb_gpib: probe succeeded for path: usb-0000:00:1a.0-1.4
[    4.348587] usbcore: registered new interface driver ni_usb_gpib
[    4.348587] gpib: registered ni_usb_b interface
[    4.350115] ni_usb_gpib: attach
[    4.350116]  attached to bus interface 0, address 0xffff880213685400
[    4.359361]  product id=0x709b
[    4.359365] ------------[ cut here ]------------
[    4.359372] WARNING: CPU: 0 PID: 1848 at drivers/usb/core/hcd.c:1587 usb_hcd_map_urb_for_dma+0x33f/0x484
[    4.359372] transfer buffer not dma capable
[    4.359373] Modules linked in: ni_usb_gpib(O) gpib_common(O) nvidia(PO) x86_pkg_temp_thermal
[    4.359380] CPU: 0 PID: 1848 Comm: gpib_config Tainted: P           O    4.9.25-gentoo #1
[    4.359381] Hardware name: Dell Inc. OptiPlex 7010/0KRC95, BIOS A05 07/31/2012
[    4.359383]  ffffc90000f579c0 ffffffff8125be6c ffffc90000f57a10 0000000000000000
[    4.359395]  ffffc90000f57a00 ffffffff81076912 0000063300f57a78 ffff880213ec6000
[    4.359396]  ffff880213cc5800 0000000002400000 0000000000000002 0000000000000200
[    4.359398] Call Trace:
[    4.359401]  [<ffffffff8125be6c>] dump_stack+0x4d/0x63
[    4.359404]  [<ffffffff81076912>] __warn+0xb8/0xd3
[    4.359405]  [<ffffffff81076973>] warn_slowpath_fmt+0x46/0x4e
[    4.359407]  [<ffffffff814b4997>] usb_hcd_map_urb_for_dma+0x33f/0x484
[    4.359408]  [<ffffffff814b59d5>] usb_hcd_submit_urb+0x6c3/0x791
[    4.359411]  [<ffffffff8165c027>] ? schedule_timeout+0x1ab/0x1d6
[    4.359412]  [<ffffffff814b67ef>] usb_submit_urb+0x42c/0x441
[    4.359415]  [<ffffffff81095e5b>] ? sched_clock_cpu+0x15/0x94
[    4.359417]  [<ffffffff814b6d18>] usb_start_wait_urb+0x59/0xc9
[    4.359418]  [<ffffffff814b6e4e>] usb_control_msg+0xc6/0xeb
[    4.359420]  [<ffffffffa0c94846>] ni_usb_receive_control_msg+0x93/0xb4 [ni_usb_gpib]
[    4.359422]  [<ffffffffa0c96fe4>] ni_usb_attach+0x330/0xad0 [ni_usb_gpib]
[    4.359424]  [<ffffffffa0c8b799>] ibonline+0x53/0xed [gpib_common]
[    4.359425]  [<ffffffffa0c896a6>] ibioctl+0x2df/0x17b3 [gpib_common]
[    4.359428]  [<ffffffff811403e0>] vfs_ioctl+0x13/0x2f
[    4.359429]  [<ffffffff81140909>] do_vfs_ioctl+0x495/0x503
[    4.359430]  [<ffffffff8113cce9>] ? putname+0x44/0x47
[    4.359431]  [<ffffffff811409b5>] SyS_ioctl+0x3e/0x5c
[    4.359433]  [<ffffffff8165cbe0>] entry_SYSCALL_64_fastpath+0x13/0x94
[    4.359434] ---[ end trace 87083574f9fe142b ]---
[    4.359435] /home/portage/tmp/portage/sci-libs/linux-gpib-4.0.3-r1/work/linux-gpib-4.0.3/drivers/gpib/ni_usb/ni_usb_gpib.c: usb_control_msg request 0x41 returned -11
[    4.360104] gpib: interface attach failed

More information on request... will also try to do some digging on my own.

Related

Bugs: #62

Discussion

  • Andreas Huettel

    Andreas Huettel - 2017-05-29

    OK I managed to circumvent this this problem.

    Background information: https://lwn.net/Articles/692208/ "Virtually mapped kernel stacks"

    On a 4.9 kernel the driver works fine if the configuration option CONFIG_VMAP_STACK is disabled.

    Since this option is in principle also a security enhancement, that's a clear workaround.

     
  • Andreas Huettel

    Andreas Huettel - 2017-05-29
    • summary: ni_usb_gpib broken in 4.0.3 --> ni_usb_gpib (and more?) broken if kernel feature CONFIG_VMAP_STACK is set (default in 4.9 and later?)
     
    • DaveP

      DaveP - 2017-05-29

      Hi Andreas,
      There is a 4.0.4rc2 tarball in the 4.0.4
      https://sourceforge.net/projects/linux-gpib/files/linux-gpib%20for%203.x.x%20and%202.6.x%20kernels/4.0.4/
      folder
      that should fix the problem.
      cheers,
      /d

      On Mon, May 29, 2017 at 4:16 PM, Andreas Huettel dilfridge@users.sf.net
      wrote:

      • summary: ni_usb_gpib broken in 4.0.3 --> ni_usb_gpib (and more?)
        broken if kernel feature CONFIG_VMAP_STACK is set (default in 4.9 and
        later?)

      Status: open
      Group: v1.0 (example)
      Created: Mon May 29, 2017 01:46 PM UTC by Andreas Huettel
      Last Updated: Mon May 29, 2017 02:15 PM UTC
      Owner: nobody

      All device access fails. Example:

      hana ~ # ibterm -d 1
      Attempting to open /dev/gpib0
      pad = 1, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000
      libgpib: IBOPENDEV ioctl failed
      libgpib: error in is_cic()!
      ibterm error: open failed
      - EDVR 0: OS error
      ibdev error
      ibterm: Aborted

      From dmesg:

      [ 4.347778] Linux-GPIB 4.0.3 Driver[ 4.348568] ni_usb_gpib driver loading[ 4.348578] ni_usb_gpib: probe succeeded for path: usb-0000:00:1a.0-1.4[ 4.348587] usbcore: registered new interface driver ni_usb_gpib[ 4.348587] gpib: registered ni_usb_b interface[ 4.350115] ni_usb_gpib: attach[ 4.350116] attached to bus interface 0, address 0xffff880213685400[ 4.359361] product id=0x709b[ 4.359365] ------------[ cut here ]------------[ 4.359372] WARNING: CPU: 0 PID: 1848 at drivers/usb/core/hcd.c:1587 usb_hcd_map_urb_for_dma+0x33f/0x484[ 4.359372] transfer buffer not dma capable[ 4.359373] Modules linked in: ni_usb_gpib(O) gpib_common(O) nvidia(PO) x86_pkg_temp_thermal[ 4.359380] CPU: 0 PID: 1848 Comm: gpib_config Tainted: P O 4.9.25-gentoo #1[ 4.359381] Hardware name: Dell Inc. OptiPlex 7010/0KRC95, BIOS A05 07/31/2012[ 4.359383] ffffc90000f579c0 ffffffff8125be6c ffffc90000f57a10 0000000000000000[ 4.359395] ffffc90000f57a00 ffffffff81076912 0000063300f57a78 ffff880213ec6000[ 4.359396] ffff880213cc5800 0000000002400000 0000000000000002 0000000000000200[ 4.359398] Call Trace:[ 4.359401] [<ffffffff8125be6c>] dump_stack+0x4d/0x63[ 4.359404] [<ffffffff81076912>] __warn+0xb8/0xd3[ 4.359405] [<ffffffff81076973>] warn_slowpath_fmt+0x46/0x4e[ 4.359407] [<ffffffff814b4997>] usb_hcd_map_urb_for_dma+0x33f/0x484[ 4.359408] [<ffffffff814b59d5>] usb_hcd_submit_urb+0x6c3/0x791[ 4.359411] [<ffffffff8165c027>] ? schedule_timeout+0x1ab/0x1d6[ 4.359412] [<ffffffff814b67ef>] usb_submit_urb+0x42c/0x441[ 4.359415] [<ffffffff81095e5b>] ? sched_clock_cpu+0x15/0x94[ 4.359417] [<ffffffff814b6d18>] usb_start_wait_urb+0x59/0xc9[ 4.359418] [<ffffffff814b6e4e>] usb_control_msg+0xc6/0xeb[ 4.359420] [<ffffffffa0c94846>] ni_usb_receive_control_msg+0x93/0xb4 [ni_usb_gpib][ 4.359422] [<ffffffffa0c96fe4>] ni_usb_attach+0x330/0xad0 [ni_usb_gpib][ 4.359424] [<ffffffffa0c8b799>] ibonline+0x53/0xed [gpib_common][ 4.359425] [<ffffffffa0c896a6>] ibioctl+0x2df/0x17b3 [gpib_common][ 4.359428] [<ffffffff811403e0>] vfs_ioctl+0x13/0x2f[ 4.359429] [<ffffffff81140909>] do_vfs_ioctl+0x495/0x503[ 4.359430] [<ffffffff8113cce9>] ? putname+0x44/0x47[ 4.359431] [<ffffffff811409b5>] SyS_ioctl+0x3e/0x5c[ 4.359433] [<ffffffff8165cbe0>] entry_SYSCALL_64_fastpath+0x13/0x94[ 4.359434] ---[ end trace 87083574f9fe142b ]---[ 4.359435] /home/portage/tmp/portage/sci-libs/linux-gpib-4.0.3-r1/work/linux-gpib-4.0.3/drivers/gpib/ni_usb/ni_usb_gpib.c: usb_control_msg request 0x41 returned -11[ 4.360104] gpib: interface attach failed

      More information on request... will also try to do some digging on my own.

      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/linux-gpib/bugs/62/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       

      Related

      Bugs: #62

  • Andreas Huettel

    Andreas Huettel - 2020-04-18
    • status: open --> closed-fixed
     
  • Andreas Huettel

    Andreas Huettel - 2020-04-18

    Yep, this is fixed now.

     

Log in to post a comment.