Commit Graph

332 Commits

Author SHA1 Message Date
Valentina Manea 04f7bb9d36 staging: usbip: userspace: add hwdata as optional dependency in README
This is an optional dependency since USB/IP can fully work without
it. However, it is needed to display device information such as
vendor.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:50:24 -08:00
Valentina Manea 87f627f7bd staging: usbip: userspace: don't throw error when trying to read configuration specific attributes
When a device has just been bound to usbip-host but the client hasn't
set a configuration on it, certain attributes will not exist. Don't
treat this as an error.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:50:24 -08:00
Valentina Manea 6080cd0e92 staging: usbip: claim ports used by shared devices
A device should not be able to be used concurrently both by
the server and the client. Claiming the port used by the
shared device ensures no interface drivers bind to it and
that it is not usable from the server.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:48:43 -08:00
Valentina Manea a46034ca57 staging: usbip: trigger driver probing after unbinding from usbip-host
A sysfs attribute is used to announce kernel space that a
new driver probing session should be triggered for the just
unbinded device.

In order to have the address of struct device associated to this
USB device, a new member has been added to struct bus_id_priv.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:48:11 -08:00
Valentina Manea 2c8c981589 staging: usbip: let client choose device configuration
Since usbip-host is now a device driver and the client
has full access to the shared device, it makes sense to
let the client choose device configuration.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:48:11 -08:00
Valentina Manea 435d948c2b staging: usbip: userspace: increase version to 2.0
Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:46:43 -08:00
Valentina Manea 98ada08a92 staging: usbip: userspace: update dependencies in README
Add libudev as dependency and remove libsysfs.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:46:43 -08:00
Valentina Manea 23477ffdd0 staging: usbip: userspace: remove libsysfs flag and autoconf check
libsysfs is now completely removed from USB/IP.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:46:43 -08:00
Valentina Manea a744b7c637 staging: usbip: userspace: migrate vhci_driver to libudev
This patch migrates vhci_driver to libudev.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Reviewed-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:46:42 -08:00
Valentina Manea eb61d6d45f staging: usbip: userspace: remove class device infrastructure in vhci_driver
The class device lists were used only when being initialized,
being populated and being destroyed. They had no real meaning
and thus the code was useless.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:46:42 -08:00
Valentina Manea 021aed8453 staging: usbip: userspace: migrate usbip_host_driver to libudev
This patch modifies usbip_host_driver to use libudev.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Reviewed-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:46:42 -08:00
Valentina Manea ecc13b7255 staging: usbip: userspace: move sysfs_utils to libsrc
Since it offers a API to both usbip tools and libusbip,
it is more appropriate to be place in the library.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:46:42 -08:00
Valentina Manea 52d04485bd staging: usbip: userspace: add new list API
Take the linked list implementation from the Linux Kernel
and strip it down to what it is needed.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:46:42 -08:00
Valentina Manea 29a30ad7be staging: usbip: userspace: re-add interface information listing
This was deleted in the driver conversion patch. It didn't need
to be deleted; showing more information is ok.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Reviewed-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:46:42 -08:00
Valentina Manea 37765c13f0 staging: usbip: userspace: migrate usbip_list to libudev
This patch modifies usbip_list to use libudev.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:46:41 -08:00
Valentina Manea d561ef95e1 staging: usbip: userspace: migrate usbip_unbind to libudev
This patch modifies usbip_unbind to use libudev.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Reviewed-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:46:41 -08:00
Valentina Manea c522a03ad1 staging: usbip: userspace: remove useless libsysfs includes
This patch removes useless libsysfs.h includes in various
userspace files.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:46:41 -08:00
Valentina Manea 1e94031973 staging: usbip: userspace: migrate usbip_bind to libudev
This patch adds autoconf check for libudev and migrates
usbip_bind to the new library.

libsysfs will still be used until all userspace is modified.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Reviewed-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-08 22:46:41 -08:00
John de la Garza bf988c16a3 usbip:usbip_common.c: check return value of sscanf
Added code to check return value of sscanf.

Signed-off-by: John de la Garza <john@jjdev.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-06 17:31:44 -08:00
John de la Garza 88fa1ebfa2 staging: usbip: vhci_sysfs.c: check return value of sscanf
Added code to check return value of sscanf.

Signed-off-by: John de la Garza <john@jjdev.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-06 11:58:31 -08:00
Shuah Khan cec2e7bb6d staging/usbip: change usbip userspace to include new uapi usbip.h
usbip userspace has duplicated enum definition to report usbip device
status maintained by the kernel. A new uapi usbip.h now defines the
usbip device status for kernel and userspace to use. Change usbip
userspace to include uapi usbip.h for usbip device status.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-04 16:12:14 -08:00
Shuah Khan cd84ec9632 staging/usbip: change usbip to include new uapi usbip.h
usbip userspace has duplicated enum definition to report usbip device
status maintained by the kernel. A new uapi usbip.h now defines the
usbip device status for kernel and userspace to use. Change usbip
kernel space to include uapi usbip.h for usbip device status.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-04 16:12:14 -08:00
Shuah Khan 78a10b8160 staging/usbip: add uapi header to export usbip kernel interfaces
usbip userspace has duplicated enum definition to report usbip device
status maintained by the kernel. Adding an usbip uapi header file will
define the kernel - userspace interface for this device status. This
new uapi file is added under usbip/uapi to keep the staging tree code
self-contained. When usbip moves to mainline drivers, this file should
be moved under uapi/linux

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-04 16:12:14 -08:00
Heinrich Schuchardt 696c9c7ffa staging: usbip: userspace: Memory leak in usbip_exported_device_new
Memory was leaked and a device not closed if we ran out of memory on the
system.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-28 14:18:29 -08:00
Masanari Iida 5484081d22 staging: usbip: Fix format string mismatch in usbip_vhci_attach_device2
Argument type of sockfd is set as int, but format string
is set as unsigned int. Fix the mismatch.

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-27 15:12:12 -08:00
Elena Oat f8cfc02309 Staging: usbip: Fix the warning of unchecked sscanf return value.
The return value of sscanf in stub_dev.c is not checked. This patch
adds the checking of the return value.

Signed-off-by: Elena Oat <oat.elena@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-27 15:12:11 -08:00
Mark Asselstine a37d70eb65 staging: usbip: prevent possible buffer overflow reading port records
To avoid buffer overflow while reading a corrupted or possibly
modified port file we validate the length of each part of the port
record to ensure it doesn't exceed the length of the destination
buffer.

https://bugzilla.kernel.org/show_bug.cgi?id=69931

Signed-off-by: Mark Asselstine <asselsm@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-14 09:32:40 -08:00
Greg Kroah-Hartman 7ca363f687 Merge branch 'staging-linus' into staging-work
This is to pull in the lustre fixes so that others can continue to work
on updating the lustre codebase, as well as resolve some merge issues
with the ion and ocproto drivers to keep linux-next happy.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-08 13:38:28 -08:00
Heinrich Schuchardt 2a7470d9ff usbip/userspace/libsrc/names.c: memory leak
revised patch

p is freed if NULL.
p is leaked if second calloc fails.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-07 11:08:46 -08:00
Shuah Khan d1fd43d7a6 staging/usbip: userspace to use linux header for usb_device_speed enum, missing speeds to speed_strings array
Remove usb_device_speed enum define from usbip_common.h and change it to
include linux/usb/ch9.h instead. Add speed strings for usb wireless and 3.0
to speed_strings array.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-07 10:55:41 -08:00
Shuah Khan 09c8c8fbf0 staging/usbip: simplify usbip_dump_usb_device() udev->speed handling
Change usbip_dump_usb_device() to use usb_speed_string() and remove the
code that does switch on udev->speed and builds custom speed strings.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-07 10:55:41 -08:00
Valentina Manea b7945b77cd staging: usbip: convert usbip-host driver to usb_device_driver
This driver was previously an interface driver. Since USB/IP
exports a whole device, not just an interface, it would make
sense to be a device driver.

This patch also modifies the way userspace sees and uses a
shared device:

* the usbip_status file is no longer created for interface 0, but for
the whole device (such as
/sys/devices/pci0000:00/0000:00:01.2/usb1/1-1/usbip_status).
* per interface information, such as interface class or protocol, is
no longer sent/received; only device specific information is
transmitted.
* since the driver was moved one level below in the USB architecture,
there is no need to bind/unbind each interface, just the device as a
whole.

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-07 10:54:30 -08:00
Shuah Khan a6646ea683 staging/usbip: Change vhci_hcd store_attach() device information message to include speed string
Change vhci_hcd store_attach() routine to include speed string in its device
information message. The current call to dev_info() prints out speed number
which is the enum number. Change to call usb_speed_string() to print speed
string in addition to the number.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-07 10:53:35 -08:00
Shuah Khan 3b92e8ae30 staging/usbip: remove vhci_hcd vhci_hub_status change message
When vhci_hcd is enabled, the following message floods the dmesg buffer.
This message doesn't provide any useful information other than cluttering
the dmesg buffer. Fix it by removing the message. There is another debug
message in this routine that dumps detailed port status change information.

[ 4062.716662] vhci_hcd: changed 0

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-07 10:53:35 -08:00
Shuah Khan 8360fb0d9c staging/usbip: Fix vhci_hcd attach failure error message to be informative
When attach fails due to unsupported and/or invalid bus speed, the message
vhci_hcd prints out doesn't include any useful information as to what caused
the failure. Change the message to be informative and use usb_speed_string()
to get the right speed string from usb common.

Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-07 09:15:35 -08:00
Linus Torvalds bb1281f2aa Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
Pull trivial tree updates from Jiri Kosina:
 "Usual rocket science stuff from trivial.git"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
  neighbour.h: fix comment
  sched: Fix warning on make htmldocs caused by wait.h
  slab: struct kmem_cache is protected by slab_mutex
  doc: Fix typo in USB Gadget Documentation
  of/Kconfig: Spelling s/one/once/
  mkregtable: Fix sscanf handling
  lp5523, lp8501: comment improvements
  thermal: rcar: comment spelling
  treewide: fix comments and printk msgs
  IXP4xx: remove '1 &&' from a condition check in ixp4xx_restart()
  Documentation: update /proc/uptime field description
  Documentation: Fix size parameter for snprintf
  arm: fix comment header and macro name
  asm-generic: uaccess: Spelling s/a ny/any/
  mtd: onenand: fix comment header
  doc: driver-model/platform.txt: fix a typo
  drivers: fix typo in DEVTMPFS_MOUNT Kconfig help text
  doc: Fix typo (acces_process_vm -> access_process_vm)
  treewide: Fix typos in printk
  drivers/gpu/drm/qxl/Kconfig: reformat the help text
  ...
2014-01-22 21:21:55 -08:00
Valentina Manea ec2ff62746 staging: usbip: userspace: add support for viewing imported devices
As of Matt Mooney's major refactoring in 2011, usbip port
option was left out. Add support for this option in
a manner similar to the old implementation.

Sample output:

Imported USB devices
====================
Port 00: <Port in Use> at Full Speed(12Mbps)
       unknown vendor : unknown product (1687:6211)
       2-1 -> usbip://192.168.122.152:3240/1-1
           -> remote bus/dev 001/002

Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com>
Reviewed-by: Ilija Hadzic <ihadzic@research.bell-labs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-01-09 08:44:01 -08:00
Jiri Kosina e23c34bb41 Merge branch 'master' into for-next
Sync with Linus' tree to be able to apply fixes on top of newer things
in tree (efi-stub).

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-12-19 15:08:32 +01:00
Alan 2d32927127 usbip: Fix sscanf handling
Scan only to the length permitted by the buffer

One of a set of sscanf problems noted by Jackie Chang

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-17 17:07:13 -08:00
Sankha Narayan Guria b481c2cb35 staging: usbip: Remove double initialization of msg_namelen variable
This removes the double initialization of the msg_namelen variable.

Signed-off-by: Sankha Narayan Guria <sankha93@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-12-16 13:20:39 +01:00
Aldo Iljazi 909cc6f9fa Staging: usbip: vhci_hcd.c: removed a space
Line 921: Removed the space before the semicolon.

Signed-off-by: Aldo Iljazi <mail@aldo.io>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-03 09:15:02 -08:00
Geert Uytterhoeven 6fafecb90c staging: usbip: Remove superfluous name cast
platform_device.name is "const char *"

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-19 15:30:33 -08:00
Geert Uytterhoeven 1c126bc6a2 staging: Remove superfluous name casts
device_driver.name is "const char *"

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-19 15:30:33 -08:00
Teodora Baluta d0306a514d staging: usbip: fix sparse warnings regarding endianness
The wHubCharacteristics field in usb_hub_descriptor structure is __le16
so there is no need for cast. The cpu_to_le16 returns a __le16 type for
a u16 type. Used cpu_to_le16 to silence last sparse error.

drivers/staging/usbip/vhci_hcd.c:223:35: warning: incorrect type in assignment (different base types)
drivers/staging/usbip/vhci_hcd.c:223:35:    expected restricted __le16 [usertype] wHubCharacteristics
drivers/staging/usbip/vhci_hcd.c:223:35:    got unsigned short [unsigned] [usertype] <noident>
drivers/staging/usbip/vhci_hcd.c:351:34: warning: incorrect type in assignment (different base types)
drivers/staging/usbip/vhci_hcd.c:351:34:    expected unsigned short [unsigned] [short] [usertype] <noident>
drivers/staging/usbip/vhci_hcd.c:351:34:    got restricted __le16 [usertype] <noident>
drivers/staging/usbip/vhci_hcd.c:352:34: warning: incorrect type in assignment (different base types)
drivers/staging/usbip/vhci_hcd.c:352:34:    expected unsigned short [unsigned] [short] [usertype] <noident>
drivers/staging/usbip/vhci_hcd.c:352:34:    got restricted __le16 [usertype] <noident>
drivers/staging/usbip/vhci_hcd.c:540:36: warning: restricted __le16 degrades to integer

Signed-off-by: Teodora Baluta <teobaluta@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-10 11:51:53 -08:00
Himangi Saraogi b482da2b98 staging:usbip:usbip_common.c: Join quoted string split accross lines
This patch removes the checkpatch.pl warnings "quoted string split accross lines"
in usbip_common.c.

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-10 11:51:53 -08:00
Himangi Saraogi 5fb4471ef3 staging:usbip:stub_rx.c: Remove warning quoted string split across lines
This patch removes the checkpatch.pl warnings "quoted string split
across lines" in stub_rx.c by merging the quoted strings and the
ensuring that the lines are not more than 80 characters long.

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-10 11:51:53 -08:00
Tobias Polzer 3dd89f9f1b staging: usbip: Fix man-pages for usbip userspace utilities
The usbip userspace utilities contained some half-documented (only in
--help, not in man) options. They were added to the man-pages of usbip
and usbipd.
Also a typo in the usbip headline was fixed.

Signed-off-by: Tobias Polzer <tobias.polzer@fau.de>
Signed-off-by: Dominik Paulus <dominik.paulus@fau.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-25 16:58:32 -07:00
Dominik Paulus f49ad35cd1 staging: usbip: Fix IPv6 support in usbipd
getaddrinfo() leaves the order of the returned addrinfo structs
unspecified. On systems with bindv6only disabled (this is the default),
PF_INET6 sockets bind to IPv4, too. Thus, IPv6 support in usbipd was
broken when getaddrinfo returned first IPv4 and then IPv6 addrinfos, as
the IPv6 bind failed with EADDRINUSE.

This patch uses seperate sockets for IPv4 and IPv6 and sets IPV6_V6ONLY
on all IPv6 sockets. Two command line arguments, -4 and -6 were added to
manually select the socket family.

Signed-off-by: Tobias Polzer <tobias.polzer@fau.de>
Signed-off-by: Dominik Paulus <dominik.paulus@fau.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-25 16:35:56 -07:00
Tobias Polzer 414ef695c4 staging: usbip: Fix build on Debian ppc
One missing include was added.

Signed-off-by: Dominik Paulus <dominik.paulus@fau.de>
Signed-off-by: Tobias Polzer <tobias.polzer@fau.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-25 16:33:55 -07:00
Dominik Paulus 82bd3f1ba0 staging: usbip: Fix build with --with-tcp-wrappers
With --with-tcp-wrappers=no specified, the build system reset LIBS to
the empty string and thus fails to link against libsysfs.

Signed-off-by: Dominik Paulus <dominik.paulus@fau.de>
Signed-off-by: Tobias Polzer <tobias.polzer@fau.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-09-25 16:32:43 -07:00