From: <bogus@does.not.exist.com>
To: u-boot@lists.denx.de
Subject: No subject
Date: Mon, 05 Dec 2011 12:53:56 -0000 [thread overview]
Message-ID: <mailman.52.1343522609.16640.u-boot@lists.denx.de> (raw)
struct qTD {
=09/* this part defined by EHCI spec */
=09uint32_t qt_next;=09=09/* see EHCI 3.5.1 */
#define=09QT_NEXT_TERMINATE=091
=09uint32_t qt_altnext;=09=09/* see EHCI 3.5.2 */
=09uint32_t qt_token;=09=09/* see EHCI 3.5.3 */
=09uint32_t qt_buffer[5];=09=09/* see EHCI 3.5.4 */
=09uint32_t qt_buffer_hi[5];=09/* Appendix B */
=09/* pad struct for 32 byte alignment */
=09uint32_t unused[3];
};
So sizeof(struct qTD) is 16 * 32 bits =3D 64 bytes. For the worst alignment=
case,
the number of qTDs to allocate for 65535 blocks of 512 bytes (worst MSC cas=
e
with 512-byte sectors) is DIV_ROUND_UP(65535 * 512, 4 * 4096) =3D 2048 qTDs=
, i.e.
128 kiB. For the same transfer size with the best alignment case, it is
DIV_ROUND_UP(65535 * 512, 5 * 4096) =3D 1639 qTDs, i.e. 104896 B.
But if we consider extreme cases, these figures can get even larger, e.g. w=
ith
4-kiB storage sectors.
So we could perhaps issue a #error in ehci-hcd or in usb_storage if
CONFIG_SYS_MALLOC_LEN is not large enough, but I don't think it's a good id=
ea
because:
- the threshold value would have to depend on runtime block sizes or somet=
hing,
which could lead to a big worst worst case that would almost never happe=
n in
real life, so giving such an unrealistic heap size constraint would be
cumbersome,
- reaching the top sizes would mean reading a huge file or something to a =
large
buffer (much larger than the qTDs this transfer requires), which would v=
ery
likely be heap-allocated (except for commands like fatload), so
CONFIG_SYS_MALLOC_LEN would already have to be large for the application=
,
- for command line operations like fatload, transfers of uncontrolled leng=
ths
could simply crash U-Boot if they go too far in memory, which means that
users of such commands need to know what they are doing anyway, so they =
have
to control transfer sizes,
- there is already a runtime error displayed in case of allocation failure=
.
Marek, what do you think?
Best regards,
Beno=C3=AEt
next reply other threads:[~2011-12-05 12:53 UTC|newest]
Thread overview: 398+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-05 12:53 bogus [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-11-25 10:16 No subject Manuel Reis
2020-05-08 9:43 Patrick Wildt
2014-06-27 8:01 bogus
2014-06-27 8:01 bogus
2014-06-27 8:01 bogus
2014-06-27 8:01 bogus
2014-05-30 7:51 bogus
2014-05-30 7:51 bogus
2014-05-30 7:51 bogus
2014-03-03 8:42 bogus
2014-03-03 8:42 bogus
2014-03-03 8:42 bogus
2014-03-03 8:42 bogus
2014-03-03 8:42 bogus
2014-03-03 8:42 bogus
2014-03-03 8:42 bogus
2014-03-03 8:42 bogus
2014-03-03 8:42 bogus
2014-03-03 8:42 bogus
2014-03-03 8:42 bogus
2013-12-16 11:38 bogus
2013-12-16 11:38 bogus
2013-12-16 11:38 bogus
2013-12-16 11:38 bogus
2013-12-16 11:38 bogus
2013-12-16 11:38 bogus
2013-12-16 11:38 bogus
2013-12-16 11:38 bogus
2013-10-15 19:54 bogus
2013-10-15 19:54 bogus
2013-10-15 19:54 bogus
2013-10-15 19:54 bogus
2013-10-15 19:54 bogus
2013-10-15 19:54 bogus
2013-10-15 19:54 bogus
2013-10-15 19:54 bogus
2013-10-15 19:54 bogus
2013-10-15 19:54 bogus
2013-10-15 19:54 bogus
2013-10-15 19:54 bogus
2013-08-18 1:03 bogus
2013-08-18 1:03 bogus
2013-08-18 1:03 bogus
2013-08-18 1:03 bogus
2013-08-18 1:03 bogus
2013-08-18 1:03 bogus
2013-08-18 1:03 bogus
2013-08-18 1:03 bogus
2013-08-18 1:03 bogus
2013-08-18 1:03 bogus
2013-08-18 1:03 bogus
2013-08-18 1:03 bogus
2013-08-18 1:03 bogus
2013-08-18 1:03 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2013-04-09 14:12 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2012-10-11 5:38 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-12-05 12:53 bogus
2011-11-17 20:02 bogus
2011-11-17 20:02 bogus
2011-11-17 20:02 bogus
2011-11-17 20:02 bogus
2011-11-17 20:02 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2009-01-23 10:48 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-08-19 20:18 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
2008-07-29 0:03 bogus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=mailman.52.1343522609.16640.u-boot@lists.denx.de \
--to=bogus@does.not.exist.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox