On 12/07/2016 01:39 PM, Jan Leupold wrote:
All a4l_sbinfo_t are handled in __a4l_fill_desc() as a contiguous array
and is stored as data in a4l_root_t. The old code allocated enough
memory when the device had at least two subdevices, but missed 8 bytes
(on ARM32), which is the difference between sizeof(a4l_root_t) and
sizeof(a4l_leaf_t).

sorry I dont understand this patch. could you expand on the scenario you are testing? a4l_root_setup already takes into consideration the size of the a4l_root_t (check the offset initialization)



---
  lib/analogy/descriptor.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/analogy/descriptor.c b/lib/analogy/descriptor.c
index bc4d7bd..fa8cf93 100644
--- a/lib/analogy/descriptor.c
+++ b/lib/analogy/descriptor.c
@@ -100,8 +100,9 @@ static inline a4l_leaf_t *a4l_leaf_get(a4l_leaf_t * lf,
  static int __a4l_get_sbsize(int fd, a4l_desc_t * dsc)
  {
        unsigned int i, j, nb_chan, nb_rng;
+       /* all subdevice a4l_sbinfo_t are within one special leaf: the root */
        int ret, res =
-               dsc->nb_subd * (sizeof(a4l_sbinfo_t) + sizeof(a4l_leaf_t));
+               sizeof(a4l_root_t) + dsc->nb_subd * (sizeof(a4l_sbinfo_t));
for (i = 0; i < dsc->nb_subd; i++) {

_______________________________________________
Xenomai mailing list
Xenomai@xenomai.org
https://xenomai.org/mailman/listinfo/xenomai

_______________________________________________
Xenomai mailing list
Xenomai@xenomai.org
https://xenomai.org/mailman/listinfo/xenomai

Reply via email to