RE: Linux USB gadget mass storage

2012-10-30 Thread victor
Hi, In file_storage.c, send_status(), if (transport_is_bbb()), I add the line bh->inreq->buf = bh -> buf, and in get_next_command(), if (transport_is_bbb()), I add the line bh->outreq->context = bh, to make the bh address to be the same. Is this patch ok? victor -Original Message- From

[PATCH v2 usb-next 3/4] USB: option: replace vendor probe rule with match flags

2012-10-30 Thread Bjørn Mork
No need for a vendor specific probe exception just to match on the interface class. Signed-off-by: Bjørn Mork --- drivers/usb/serial/option.c | 71 --- 1 file changed, 33 insertions(+), 38 deletions(-) diff --git a/drivers/usb/serial/option.c b/drivers/

[PATCH v2 usb-next 0/4] Some trivial fixes for the option driver.

2012-10-30 Thread Bjørn Mork
v2: moved the USB_DEVICE_INTERFACE_CLASS macro to usb.h as suggested by Oliver Neukum. Bjørn Mork (4): USB: option: never bind to a usb-storage interface USB: add USB_DEVICE_INTERFACE_CLASS macro USB: option: replace vendor probe rule with match flags USB: option: idVendor and idProduct

[PATCH v2 usb-next 2/4] USB: add USB_DEVICE_INTERFACE_CLASS macro

2012-10-30 Thread Bjørn Mork
Matching on device and interface class with with unspecified subclass and protocol is sometimes useful. This is slightly different from USB_DEVICE_AND_INTERFACE_INFO which requires the full interface class/subclass/protocol triplet. Signed-off-by: Bjørn Mork --- include/linux/usb.h | 16 +

[PATCH v2 usb-next 1/4] USB: option: never bind to a usb-storage interface

2012-10-30 Thread Bjørn Mork
There are many modems in addition to the D-Link DWM 652 exposing the CD interface in modem mode, and some expose an integrated card reader as well. Always ignore these interfaces. Signed-off-by: Bjørn Mork --- drivers/usb/serial/option.c |9 ++--- 1 file changed, 2 insertions(+), 7 delet

[PATCH v2 usb-next 4/4] USB: option: idVendor and idProduct are __le16

2012-10-30 Thread Bjørn Mork
The exception is needed on big endian systems too. Signed-off-by: Bjørn Mork --- drivers/usb/serial/option.c |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 0969260..330ac1c 100644 --- a/drivers/usb/seri

Linux USB gadget mass storage

2012-10-30 Thread victor
Hi, I am using Linux USB gadget mass storage. I meet with problem in file_storage.c. The bh->outreq->context in get_next_command() is not equal to bh. victor CONFIDENTIALITY NOTE: This e-mail and an

Re: Endpoint is not halted

2012-10-30 Thread Shimmer Huang
Sarah, This patch works for me. Would you please help submit and merge this patch ? On Sat, Oct 27, 2012 at 1:51 AM, Sarah Sharp wrote: > On Fri, Oct 26, 2012 at 02:50:20PM +0800, Shimmer Huang wrote: >> Sarah, >> >> We've found the TD_size issue when developing a new XHCI host controller >> al

Re: [PATCH v3 2/6] PM / Runtime: introduce pm_runtime_set[get]_memalloc_noio()

2012-10-30 Thread Ming Lei
On Wed, Oct 31, 2012 at 10:08 AM, Ming Lei wrote: >> I am afraid it is, because a disk may just have been probed as the deviceis >> being reset. > > Yes, it is probable, and sounds like similar with 'root_wait' problem, see > prepare_namespace(): init/do_mounts.c, so looks no good solution > for

Re: [PATCH v3 2/6] PM / Runtime: introduce pm_runtime_set[get]_memalloc_noio()

2012-10-30 Thread Ming Lei
On Wed, Oct 31, 2012 at 12:30 AM, Oliver Neukum wrote: >> If the USB mass-storage device is being reseted, the flag should be set >> already generally. If the flag is still unset, that means the disk/network >> device isn't added into system(or removed just now), so memory allocation >> with bloc

Re: host to host usb transfer

2012-10-30 Thread Michal Nazarewicz
On Tue, Oct 30 2012, Marek Floriańczyk wrote: > So in order to use g_ether on this Linux box it should have USB > peripheral controller, right? UDC, USB Device Controller > Standard PC computer has something called host controller. HCI, Host Controller Interface > Are there computers that hav

[PATCH V2 2/3] Remove VLAIS usage from gadget code

2012-10-30 Thread Behan Webster
The use of variable length arrays in structs (VLAIS) in the Linux Kernel code precludes the use of compilers which don't implement VLAIS (for instance the Clang compiler). This patch instead calculates offsets into the kmalloc-ed memory buffer using macros from valign.h. Signed-off-by: Behan Webst

[PATCH V2 3/3] Remove VLAIS usage from netfilter

2012-10-30 Thread Behan Webster
From: Jan-Simon Möller The use of variable length arrays in structs (VLAIS) in the Linux Kernel code precludes the use of compilers which don't implement VLAIS (for instance the Clang compiler). This patch instead calculates offsets into the kmalloc-ed memory buffer using macros from valign.h. P

[PATCH V2 1/3] Helper macros used for replacing the use of VLAIS

2012-10-30 Thread Behan Webster
The use of variable length arrays in structs (VLAIS) in the Linux Kernel code precludes the use of compilers which don't implement VLAIS (for instance the Clang compiler). This new header file contains macros which can be used to calculate the size and offset of variables in an allocated buffer of

[PATCH V2 0/3] Removing the use of VLAIS from USB Gadget and netfilter

2012-10-30 Thread Behan Webster
This is a V2 version of the patch set I previously sent out. Since the use of a new valign.h file spans both the USB and netfilter subsystems, I should have sent out all 3 patches to both trees at once. Assuming all is well, hopefully both subsystems can cooperate to get these patches in without ca

Re: host to host usb transfer

2012-10-30 Thread Marek Floriańczyk
Hello, I think I got the picture more or less. So in order to use g_ether on this Linux box it should have USB peripheral controller, right? Standard PC computer has something called host controller. Are there computers that have usb host controller - to connect to them "regular" usb devices and

Re: d3cold breaks my usb 3.0 port (Lenovo X220)

2012-10-30 Thread Sarah Sharp
On Sat, Oct 27, 2012 at 10:03:08PM -0700, Andrew Lutomirski wrote: > On Sat, Oct 27, 2012 at 9:59 PM, Andrew Lutomirski wrote: > > I have a Lenovo X220, and d3cold seems to break hotplug on xhci. This > > is 3.6.2-4.fc17.x86_64. > > > > The device is: > > > > 0e:00.0 USB Controller [0c03]: NEC Co

Re: [PATCH 1/2] Helper macros used for replacing the use of VLAIS

2012-10-30 Thread Greg KH
On Tue, Oct 30, 2012 at 03:35:24PM -0400, Behan Webster wrote: > On 12-10-30 03:20 PM, Greg KH wrote: > >On Tue, Oct 30, 2012 at 02:25:19PM -0400, Behan Webster wrote: > >>The use of variable length arrays in structs (VLAIS) in the Linux Kernel > >>code > >>precludes the use of compilers which don

Re: [PATCH 1/2] Helper macros used for replacing the use of VLAIS

2012-10-30 Thread Behan Webster
On 12-10-30 03:20 PM, Greg KH wrote: On Tue, Oct 30, 2012 at 02:25:19PM -0400, Behan Webster wrote: The use of variable length arrays in structs (VLAIS) in the Linux Kernel code precludes the use of compilers which don't implement VLAIS (for instance the Clang compiler). This new header file con

Re: [PATCH] [trivial] usb: Fix typo in drivers/usb

2012-10-30 Thread Greg KH
On Fri, Oct 26, 2012 at 11:43:19PM +0900, Masanari Iida wrote: > Correct spelling typo in debug message within drivers/usb. > > Signed-off-by: Masanari Iida This no longer applies, please redo it against the latest linux-next tree. thanks, greg k-h -- To unsubscribe from this list: send the li

Re: [PATCH 1/2] Helper macros used for replacing the use of VLAIS

2012-10-30 Thread Greg KH
On Tue, Oct 30, 2012 at 02:25:19PM -0400, Behan Webster wrote: > The use of variable length arrays in structs (VLAIS) in the Linux Kernel code > precludes the use of compilers which don't implement VLAIS (for instance the > Clang compiler). This new header file contains macros which can be used to

Re: [PATCH v2 3/3] usb/dummy_hcd: assign endpoint on enqeue on host side

2012-10-30 Thread Alan Stern
On Tue, 30 Oct 2012, Sebastian Andrzej Siewior wrote: > * Alan Stern | 2012-10-29 12:04:10 [-0400]: > > >Was that really the problem? My memory is not what it was three weeks > >ago... > > > >If so, there's a simpler solution. The list_for_each_entry_safe() > >loop in dummy_timer() should no

[PATCH 3/4] usb/musb: Perform only write access on MUSB_INTRRXE

2012-10-30 Thread Sebastian Andrzej Siewior
This is part of the workaround for AM35x advisory Advisory 1.1.20. The advisory says that the IPSS bridge can't handle 8 & 16 bit read access. An 16bit read access to MUSB_INTRRXE results in an 32bit read access which also reads INTRUSB and therefore may lose interrupts. This patch uses a shadow re

[PATCH 4/4] usb/musb: Perform only write access on MUSB_INTRTXE

2012-10-30 Thread Sebastian Andrzej Siewior
This is part of the workaround for AM35x advisory Advisory 1.1.20. The advisory says that the IPSS bridge can't handle 8 & 16 bit read access. An 16bit read access to MUSB_INTRTXE results in an 32bit read access which also reads INTRRX and therefore may lose interrupts. This patch uses a shadow reg

[PATCH 2/4] usb/musb: avoid FADDR read access

2012-10-30 Thread Sebastian Andrzej Siewior
This is part of the workaround for AM35x advisory Advisory 1.1.20. The advisory says that the IPSS bridge can't handle 8 & 16 bit read access. An 8bit read access to FADDR results in an 32bit read access which also reads INTRTX and therefore may lose interrupts. This patch removes any reads to FADD

[PATCH 1/4] musb: read MUSB_POWER register only when required.

2012-10-30 Thread Sebastian Andrzej Siewior
This is part of the workaround for AM35x advisory Advisory 1.1.20. The advisory says that the IPSS bridge can't handle 8 & 16 bit read access. An 8bit read access to MUSB_POWER results in an 32bit read access which also reads INTRTX and therefore may lose interrupts. This patch tries to minimize re

Workaround for AM35x advisory Advisory 1.1.20

2012-10-30 Thread Sebastian Andrzej Siewior
Hi, just found out that those are still in my tree. Patch #4 touches musb_host.c. I can't validate that change, my board runs only in device mode. This fixes the PIO mode of AM35x. It is still broken in DMA mode. I have an workaround in my inbox and I need to apply and verify it first. So for now,

Re: usb audio race at disconnect time

2012-10-30 Thread Alan Stern
On Tue, 30 Oct 2012, Matthieu CASTET wrote: > But I saw a failure I didn't saw before during stress test [1]. > It is hard to say if it is related to your patches : > - we test on a older kernel version and I backported usbaudio from 3.7 with > your > patches > - the start of the trace is missing

Re: host to host usb transfer

2012-10-30 Thread Michal Nazarewicz
On Tue, Oct 30 2012, Marek Floriańczyk wrote: > Lets leave windows on side for a moment. How about if I would like to connect > to this Linux box with g_ether gadget from other Linux machine ? Do I also > need g_ether module on the other machine? No. g_ether is USB gadget, it is functional only

[PATCH 1/2] Helper macros used for replacing the use of VLAIS

2012-10-30 Thread Behan Webster
The use of variable length arrays in structs (VLAIS) in the Linux Kernel code precludes the use of compilers which don't implement VLAIS (for instance the Clang compiler). This new header file contains macros which can be used to calculate the size and offset of variables in an allocated buffer of

[PATCH 2/2] Remove VLAIS usage from gadget code

2012-10-30 Thread Behan Webster
The use of variable length arrays in structs (VLAIS) in the Linux Kernel code precludes the use of compilers which don't implement VLAIS (for instance the Clang compiler). This patch instead calculates offsets into the kmalloc-ed memory buffer using macros from valign.h. Signed-off-by: Behan Webst

[PATCH 0/2] Removing the use of VLAIS from the Linux Kernel

2012-10-30 Thread Behan Webster
The use of variable length arrays in structs (VLAIS) in the Linux Kernel code precludes the use of compilers which don't implement VLAIS (for instance the Clang compiler). The LLVMLinux Project is working towards the ability of providing the Linux kernel developer the choice of using the Clang comp

Re: [PATCH v3 2/6] PM / Runtime: introduce pm_runtime_set[get]_memalloc_noio()

2012-10-30 Thread Alan Stern
On Wed, 31 Oct 2012, Ming Lei wrote: > On Tue, Oct 30, 2012 at 11:38 PM, Alan Stern > wrote: > > > > > Okay, I see your point. But acquiring the lock here doesn't solve the > > problem. Suppose a thread is about to reset a USB mass-storage device. > > It acquires the lock and sees that the no

Re: [GIT PULL] USB fixes for v3.7-rc4

2012-10-30 Thread Greg KH
On Tue, Oct 30, 2012 at 02:47:50PM +0200, Felipe Balbi wrote: > Hi Greg, > > Judging by how things are going, this is likely to be my last pull request > for v3.7-rc cycle, unless someone finds a big regression which we really must > fix during v3.7-rc. > > It's rather small; just a revert, a Kco

Re: [PATCH v3 2/6] PM / Runtime: introduce pm_runtime_set[get]_memalloc_noio()

2012-10-30 Thread Oliver Neukum
On Wednesday 31 October 2012 00:00:56 Ming Lei wrote: > On Tue, Oct 30, 2012 at 11:38 PM, Alan Stern > wrote: > > > > > Okay, I see your point. But acquiring the lock here doesn't solve the > > problem. Suppose a thread is about to reset a USB mass-storage device. > > It acquires the lock and

Re: [PATCH v3 2/6] PM / Runtime: introduce pm_runtime_set[get]_memalloc_noio()

2012-10-30 Thread Ming Lei
On Wed, Oct 31, 2012 at 12:00 AM, Ming Lei wrote: > > Looks the simplest approach is to handle the noio flag thing at the start and > end of rpm_resume. Sorry, that doesn't work, runtime_suspend need that too because memory allocation with block I/O might deadlock when doing I/O on the same devic

Re: Problem with OHCI on OMAP4430

2012-10-30 Thread Alan Stern
On Tue, 30 Oct 2012, Mohan V wrote: > >> >> Device not getting detected when > >> >> connected--- > >> >> > >> >> / # [ 135.621002] usbhs_wakeup: Enabling clocks > >> >> [ 135.625762] usbhs_runtime_resume:++ > >> >> [ 135.630371] usbhs_runtim

Re: [PATCH v3 2/6] PM / Runtime: introduce pm_runtime_set[get]_memalloc_noio()

2012-10-30 Thread Ming Lei
On Tue, Oct 30, 2012 at 11:38 PM, Alan Stern wrote: > > Okay, I see your point. But acquiring the lock here doesn't solve the > problem. Suppose a thread is about to reset a USB mass-storage device. > It acquires the lock and sees that the noio flag is clear. But before > it can issue the rese

Re: Large files/folders copying ends with I/O error in mass storage

2012-10-30 Thread Alan Stern
On Tue, 30 Oct 2012, megha dey wrote: > >> From the trace attached,we see that write_10(highlighted command) is > >> taking about 10 seconds,by which time the host is timing out.The host > >> then sends the next test_unit_ready command without getting the status > >> for the previous write.Thus,he

Re: During xHC Initialization (device is not connected), when HC-RESET is asserted, software is not expecting WRC or PRC bit set

2012-10-30 Thread Alan Stern
On Tue, 30 Oct 2012, Bhavik Kothari wrote: > Hi Alan, > > Please find attached patch file. We have made a patch file in Linux 3.6.1 > version. > > Let us know your inputs. > --- a/linux-3.6.1/drivers/usb/core/hub.c 2012-10-07 21:11:28.0 > +0530 > +++ b/linux-3.6.1/drivers/usb/core

Re: [PATCH v3 2/6] PM / Runtime: introduce pm_runtime_set[get]_memalloc_noio()

2012-10-30 Thread Alan Stern
On Tue, 30 Oct 2012, Ming Lei wrote: > >> +bool pm_runtime_get_memalloc_noio(struct device *dev) > >> +{ > >> + bool ret; > >> + spin_lock_irq(&dev->power.lock); > >> + ret = dev->power.memalloc_noio_resume; > >> + spin_unlock_irq(&dev->power.lock); > >> + return ret; > >> +} >

Re: HDD spins up to slow for USB and/or Mass-Storage Driver

2012-10-30 Thread Alan Stern
On Fri, 26 Oct 2012, Alan Stern wrote: > On Fri, 26 Oct 2012, Sarah Sharp wrote: > > > On Fri, Oct 26, 2012 at 03:01:32PM -0700, Sarah Sharp wrote: > > > The USB core isn't dropping the endpoints before it calls > > > xhci_check_bandwidth. I remember running into this bug a while back, > > > and

Re: host to host usb transfer

2012-10-30 Thread Marek Floriańczyk
Dnia wtorek, 30 października 2012 o 14:51:33 Michal Nazarewicz napisał(a): > On Tue, Oct 30 2012, Marek Floriańczyk wrote: > > So this interface is recognized on windows as his own interface? Ip on > > this interface is configured as it was set by Linux box g_ether driver? > > And you can connect t

Re: host to host usb transfer

2012-10-30 Thread Michal Nazarewicz
On Tue, Oct 30 2012, Marek Floriańczyk wrote: > So this interface is recognized on windows as his own interface? Ip on this > interface is configured as it was set by Linux box g_ether driver? And you > can > connect to this ip from application on windows? Windows sees it as a new network inter

Re: host to host usb transfer

2012-10-30 Thread Marek Floriańczyk
Dnia wtorek, 30 października 2012 o 13:19:26 Ming Lei napisał(a): > On Tue, Oct 30, 2012 at 4:24 PM, Marek Floriańczyk > > wrote: > > So lets assume I have UDC and I have compiled g_ether gadget, configured > > this and it works. How to use it? > > From view of OS, it is a common ethernet interf

[GIT PULL] USB fixes for v3.7-rc4

2012-10-30 Thread Felipe Balbi
Hi Greg, Judging by how things are going, this is likely to be my last pull request for v3.7-rc cycle, unless someone finds a big regression which we really must fix during v3.7-rc. It's rather small; just a revert, a Kconfig change and the addition of a variable to a function. In fact, it's so s

Re: Problem with OHCI on OMAP4430

2012-10-30 Thread Mohan V
Alan, On Mon, Oct 29, 2012 at 8:54 PM, Alan Stern wrote: > On Mon, 29 Oct 2012, Mohan V wrote: > >> > I'm not going to be able to help very much with an Android kernel. >> > Does the same problem occur with a vanilla non-Android 3.6 kernel? If >> > it doesn't, that indicates the problem was caus

[PATCH v2 3/3] usb/dummy_hcd: assign endpoint on enqeue on host side

2012-10-30 Thread Sebastian Andrzej Siewior
* Alan Stern | 2012-10-29 12:04:10 [-0400]: >Was that really the problem? My memory is not what it was three weeks >ago... > >If so, there's a simpler solution. The list_for_each_entry_safe() >loop in dummy_timer() should not consider URBs that were added after >the loop started. That ought

Re: host to host usb transfer

2012-10-30 Thread Ming Lei
On Tue, Oct 30, 2012 at 4:24 PM, Marek Floriańczyk wrote: > So lets assume I have UDC and I have compiled g_ether gadget, configured this > and it works. How to use it? >From view of OS, it is a common ethernet interface. > I mean I have Linux with this g_ether gadget that emulates eth on USB, b

[PATCH v2 2/4] usb/dummy_hdc: prepare for multiple instances

2012-10-30 Thread Sebastian Andrzej Siewior
This patch replaces the single pdev variable by an array. One change: The device id is no longer -1 (i.e. none) but 0. This is prepation work for multiple instances of the dummy_hcd + udc which should help to test gadget framework with multiple UDCs. Signed-off-by: Sebastian Andrzej Siewior ---

[PATCH] usb/musb: remove hand-crafted id handling

2012-10-30 Thread Sebastian Andrzej Siewior
This replaced the handcrafted id handling by the PLATFORM_DEVID_AUTO value which should do the same thing. This patch probably also fixes ux500 because I did not find the "musbid" variable to remove. And we close a tiny-unlikely race window becuase the old code gave the id back before device was de

Re: [PATCH v3 2/6] PM / Runtime: introduce pm_runtime_set[get]_memalloc_noio()

2012-10-30 Thread Ming Lei
Hi, On Tue, Oct 30, 2012 at 6:57 PM, Oliver Neukum wrote: > how is this to work with power management domains? Could you explain it in a bit detail? Why is PM domain involved? Suppose PM domain is involved, its domain runtime_resume callback is still run in the context with PF_MEMALLOC_NOIO fla

Re: usb audio race at disconnect time

2012-10-30 Thread Takashi Iwai
At Tue, 30 Oct 2012 11:52:33 +0100, Matthieu CASTET wrote: > > > Takashi Iwai a écrit : > >> Thanks, > >> > >> the first tests seems ok. > >> We will do more strees test. > > > > Do you have any good/bad test result? > > If no regression is seen, I'm going to apply the patches for 3.7-rc4. > The

Re: [PATCH v3 2/6] PM / Runtime: introduce pm_runtime_set[get]_memalloc_noio()

2012-10-30 Thread Oliver Neukum
On Tuesday 30 October 2012 11:21:33 Ming Lei wrote: > On Mon, Oct 29, 2012 at 11:41 PM, Alan Stern > wrote: > > On Mon, 29 Oct 2012, Ming Lei wrote: > > > >> The patch introduces the flag of memalloc_noio_resume in > >> 'struct dev_pm_info' to help PM core to teach mm not allocating > >> memory w

[PATCH] usb: gadget: ncm: correct endianess conversion

2012-10-30 Thread Dmytro Milinevskyy
Convert USB descriptor's fields to CPU byte order before using locally in USB NCM gadget driver. Tested on MIPS32 big-endian device. Signed-off-by: Dmytro Milinevskyy --- drivers/usb/gadget/f_ncm.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/usb/gad

Re: Large files/folders copying ends with I/O error in mass storage

2012-10-30 Thread megha dey
On Mon, Oct 29, 2012 at 8:39 PM, Alan Stern wrote: > On Mon, 29 Oct 2012, megha dey wrote: > >> Hi, >> This is the patch I have applied. >> >> http://marc.info/?l=linux-usb&m=132024464410783&w=2 >> >> From the trace attached,we see that write_10(highlighted command) is >> taking about 10 seconds,

Re: host to host usb transfer

2012-10-30 Thread Marek Floriańczyk
Dnia poniedziałek, 29 października 2012 o 23:57:04 Michal Nazarewicz napisał(a): > On Mon, Oct 29 2012, Marek Floriańczyk wrote: > > I have seen this usb-gadget subsystem before but I have never used > > this. It looks like it could server the purpose, surely my tablet is > > visible as an device,

Re: [PATCH, v2] fix build with XEN and EARLY_PRINTK_DBGP enabled but USB_SUPPORT disabled

2012-10-30 Thread Jan Beulich
>>> On 29.10.12 at 17:50, Greg KH wrote: > On Mon, Oct 29, 2012 at 04:45:54PM +, Jan Beulich wrote: >> Since there's no possible caller of dbgp_external_startup() and >> dbgp_reset_prep() when !USB_EHCI_HCD, there's no point in building and >> exporting these functions in that case. This elimi

Re: [PATCH, v2] fix build with XEN and EARLY_PRINTK_DBGP enabled but USB_SUPPORT disabled

2012-10-30 Thread Jan Beulich
>>> On 29.10.12 at 23:17, Alan Stern wrote: > On Mon, 29 Oct 2012, Jan Beulich wrote: > >> Since there's no possible caller of dbgp_external_startup() and >> dbgp_reset_prep() when !USB_EHCI_HCD, there's no point in building and >> exporting these functions in that case. This eliminates a build e

Re: [PATCH 1/4] usb/dwc3: remove custom unique id handling

2012-10-30 Thread Sebastian Andrzej Siewior
On 10/29/2012 09:06 PM, Felipe Balbi wrote: Hi, Hi, On Mon, Oct 29, 2012 at 06:09:53PM +0100, Sebastian Andrzej Siewior wrote: The lockless implementation of the unique id is quite impressive (:P) but dirver's core can handle it, we can remove it and make our code a little smaller. Cc: Anto