J'ai écrit un module noyau 64 bits qui fonctionne bien pour les applications 64 bits, mais qui se bloque pour les applications 32 bits. J'ai besoin de comprendre comment faire pour que le module détecte si un client est une application 32 bits et, si c'est le cas, gérer la conversion entre la structure 32 bits et la structure 64 bits dans mon module afin que les appels système fonctionnent. Lorsque le module est utilisé par une application 32 bits, la fonction recvmsg()
se bloque si le message a cmsghdrs, car la structure cmsghdr
a une taille différente dans une application 32 bits.Le module noyau 64 bits plante quand il est appelé par le client 32 bits
Mon module ne fournit pas de couche de compatibilité 32 bits explicitement, même si le noyau est configuré pour prendre en charge les applications 32 bits en mode de compatibilité. Le module implémente un nouveau protocole, définit struct proto_ops
, mais je ne vois pas compat_recv
dans les proto-ops.
Le module agit comme un proxy entre le client et une autre application (64 bits), où il récupère les réponses aux demandes client du backend en utilisant les messages netlink
plutôt que __sys_socket*()
.
Veuillez consulter l'aide au formatage (http://stackoverflow.com/editing-help)! Comme c'est maintenant, c'est une horreur absolue à lire! – geisterfurz007
J'ai édité votre titre difficile à lire très difficile à lire et source de confusion pour le rendre beaucoup plus facile à lire et à comprendre plus rapidement. Vous devriez vous efforcer d'apprendre à poser des questions plus claires parce que le vôtre a été placé dans une file d'attente de révision pour voir si quelqu'un voulait aider à résoudre la question que l'on appelait un «post de mauvaise qualité». – clearlight
S'il vous plaît examiner mes modifications et * modifier * votre réponse et corriger les erreurs que j'ai pu faire et assurez-vous que la question est correcte. Et remarquez qu'après avoir réfléchi à votre question et à chaque partie de ce que vous disiez, j'ai pu introduire le problème de base en haut, réduire la taille, le libellé, le formatage et le rendre beaucoup plus rapide à lire et beaucoup plus clair à comprendre . – clearlight