Hello Florian,
ecrt_master_get_slave will receive a NULL pointer from ec_master_find_slave_const when the query doesn't succeed (e.g. a nonexistent slave_position) - but tries to fill the slave info response nonetheless, resulting in kernel BUG: unable to handle kernel NULL pointer dereference.
for your consideration, this patch addresses the issue: hg diff master/master.c diff -r 2eff7c993a63 master/master.c --- a/master/master.c Tue Feb 12 17:31:08 2013 +0100 +++ b/master/master.c Thu May 01 16:32:58 2014 -0700 @@ -2624,6 +2624,7 @@ { const ec_slave_t *slave; unsigned int i; + int status = 0; if (down_interruptible(&master->master_sem)) { return -EINTR; @@ -2631,6 +2632,11 @@ slave = ec_master_find_slave_const(master, 0, slave_position); + if (slave == NULL) { + status = -ENOENT; + goto out_get_slave; + } + slave_info->position = slave->ring_position; slave_info->vendor_id = slave->sii.vendor_id; slave_info->product_code = slave->sii.product_code; @@ -2667,9 +2673,11 @@ slave_info->name[0] = 0; } +out_get_slave: + up(&master->master_sem); - return 0; + return status; } /*****************************************************************************/ Regards, Matthieu -- Matthieu Bec GMTO Corp cell : +1 626 354 9367 251 S Lake Ave, Suite 300 phone: +1 626 204 0527 Pasadena, CA 91101 _______________________________________________ etherlab-dev mailing list etherlab-dev@etherlab.org http://lists.etherlab.org/mailman/listinfo/etherlab-dev