Message ID | 1505790310-31106-1-git-send-email-suneelglinux@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [U-Boot,v2] cmd: usb: add blk devices to ignore list in tree graph | expand |
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
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); }
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(-)