wait_ms et kernel 2.6.6-mm4 et plus ...
Et voila .. Encore des changements dans la stack USB, et bim .. on compile plus … Forcément, si on retire une fonction … wait_ms en l’occurence ..
Dans le cas présent seuls (pour le moment) les 2.6.6-mm4 et plus sont touchés par ce problème mais il devrait affecter le 2.6.7 ( le changement devrait être mergé )..
Toutefois je ne ferais de modification définitive que pour des versions fixes (2.6.7 en l’occurrence), principalement pour 3 raisons:- Je ne suis pas encore sûr de la version stable dans laquelle cette modification va être intégrée
- Je ne suis pas encore sûr de la modification que j’apporterai: il semble qu’une fonction msleep soit ajoutée au kernel, mais je veux d’abord être sur que cette fonction sera bien présente.
- Je ne pense pas pouvoir faire de distinguo facile entre les version 2.6.6 et 2.6.6-mm4 et supérieure. De plus il doit y avoir d’autre version du kernel qui intègre ce patch et je ne souhaite pas faire des #ifdef pour tout le monde ;)
Dans l’immédiat, pour les courageux testeurs, le plus simple est encore d’ajouter:
static __inline__ void wait_ms(unsigned int ms)
{
if(!in_interrupt()) {
current->state = TASK_UNINTERRUPTIBLE;
schedule_timeout(1 + ms * HZ / 1000);
}
else
mdelay(ms);
}
au début du fichier Boot.c ou de remplacer les appels à wait_ms dans le fichier Boot.c par des appels à msleep.
Ça devrait marcher ;)