[U-Boot] [PATCH v2] cmd: usb: add blk devices to ignore list in tree graph

add blk child devices to ignore list while displaying usb tree graph, otherwise usb tree and info commands may cause crash treating blk as usb device.
Signed-off-by: Suneel Garapati suneelglinux@gmail.com ---
Changes v2: - remove check on parent uclass Changes v1: - add separate check on blk uclass - modify description - add separate check on parent uclass as usb
cmd/usb.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/cmd/usb.c b/cmd/usb.c index d95bcf5..eb31353 100644 --- a/cmd/usb.c +++ b/cmd/usb.c @@ -414,8 +414,12 @@ static void usb_show_tree_graph(struct usb_device *dev, char *pre)
udev = dev_get_parent_priv(child);
- /* Ignore emulators, we only want real devices */ - if (device_get_uclass_id(child) != UCLASS_USB_EMUL) { + /* + * Ignore emulators and block child devices, with check on + * parent uclass as usb, we only want real devices + */ + if ((device_get_uclass_id(child) != UCLASS_USB_EMUL) && + (device_get_uclass_id(child) != UCLASS_BLK)) { usb_show_tree_graph(udev, pre); pre[index] = 0; } @@ -605,7 +609,8 @@ static void usb_show_info(struct usb_device *udev) for (device_find_first_child(udev->dev, &child); child; device_find_next_child(&child)) { - if (device_active(child)) { + if (device_active(child) && + (device_get_uclass_id(child) != UCLASS_BLK)) { udev = dev_get_parent_priv(child); usb_show_info(udev); }

Hi Suneel,
On Tue, Sep 19, 2017 at 11:05 AM, Suneel Garapati suneelglinux@gmail.com wrote:
add blk child devices to ignore list while displaying usb tree graph, otherwise usb tree and info commands may cause crash treating blk as usb device.
Signed-off-by: Suneel Garapati suneelglinux@gmail.com
Changes v2:
- remove check on parent uclass
Changes v1:
- add separate check on blk uclass
- modify description
- add separate check on parent uclass as usb
cmd/usb.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/cmd/usb.c b/cmd/usb.c index d95bcf5..eb31353 100644 --- a/cmd/usb.c +++ b/cmd/usb.c @@ -414,8 +414,12 @@ static void usb_show_tree_graph(struct usb_device *dev, char *pre)
udev = dev_get_parent_priv(child);
/* Ignore emulators, we only want real devices */
if (device_get_uclass_id(child) != UCLASS_USB_EMUL) {
/*
* Ignore emulators and block child devices, with check on
* parent uclass as usb, we only want real devices
nits: please remove the comment of "with check on parent uclass as usb".
*/
if ((device_get_uclass_id(child) != UCLASS_USB_EMUL) &&
(device_get_uclass_id(child) != UCLASS_BLK)) { usb_show_tree_graph(udev, pre); pre[index] = 0; }
@@ -605,7 +609,8 @@ static void usb_show_info(struct usb_device *udev) for (device_find_first_child(udev->dev, &child); child; device_find_next_child(&child)) {
if (device_active(child)) {
if (device_active(child) &&
(device_get_uclass_id(child) != UCLASS_BLK)) { udev = dev_get_parent_priv(child); usb_show_info(udev); }
--
Regards, Bin

On 19.09.2017 05:05, Suneel Garapati wrote:
add blk child devices to ignore list while displaying usb tree graph, otherwise usb tree and info commands may cause crash treating blk as usb device.
Signed-off-by: Suneel Garapati suneelglinux@gmail.com
This patch fixes the crash I've experienced with "usb tree" sometimes, so:
Tested-by: Stefan Roese sr@denx.de
Thanks, Stefan

Thanks Bin and Stefan. I have sent the v3.
Regards, Suneel
On Mon, Sep 18, 2017 at 9:52 PM, Stefan Roese sr@denx.de wrote:
On 19.09.2017 05:05, Suneel Garapati wrote:
add blk child devices to ignore list while displaying usb tree graph, otherwise usb tree and info commands may cause crash treating blk as usb device.
Signed-off-by: Suneel Garapati suneelglinux@gmail.com
This patch fixes the crash I've experienced with "usb tree" sometimes, so:
Tested-by: Stefan Roese sr@denx.de
Thanks, Stefan
participants (3)
-
Bin Meng
-
Stefan Roese
-
Suneel Garapati