@@ -64,6 +64,11 @@ static int pn_socket_create(struct net *net, struct socket *sock, int protocol)
64
64
}
65
65
66
66
pnp = phonet_proto_get (protocol );
67
+ #ifdef CONFIG_KMOD
68
+ if (pnp == NULL &&
69
+ request_module ("net-pf-%d-proto-%d" , PF_PHONET , protocol ) == 0 )
70
+ pnp = phonet_proto_get (protocol );
71
+ #endif
67
72
if (pnp == NULL )
68
73
return - EPROTONOSUPPORT ;
69
74
if (sock -> type != pnp -> sock_type ) {
@@ -94,7 +99,7 @@ static int pn_socket_create(struct net *net, struct socket *sock, int protocol)
94
99
}
95
100
96
101
static struct net_proto_family phonet_proto_family = {
97
- .family = AF_PHONET ,
102
+ .family = PF_PHONET ,
98
103
.create = pn_socket_create ,
99
104
.owner = THIS_MODULE ,
100
105
};
@@ -447,7 +452,7 @@ static int __init phonet_init(void)
447
452
448
453
err :
449
454
phonet_sysctl_exit ();
450
- sock_unregister (AF_PHONET );
455
+ sock_unregister (PF_PHONET );
451
456
dev_remove_pack (& phonet_packet_type );
452
457
phonet_device_exit ();
453
458
return err ;
@@ -457,7 +462,7 @@ static void __exit phonet_exit(void)
457
462
{
458
463
isi_unregister ();
459
464
phonet_sysctl_exit ();
460
- sock_unregister (AF_PHONET );
465
+ sock_unregister (PF_PHONET );
461
466
dev_remove_pack (& phonet_packet_type );
462
467
phonet_device_exit ();
463
468
}
@@ -466,3 +471,4 @@ module_init(phonet_init);
466
471
module_exit (phonet_exit );
467
472
MODULE_DESCRIPTION ("Phonet protocol stack for Linux" );
468
473
MODULE_LICENSE ("GPL" );
474
+ MODULE_ALIAS_NETPROTO (PF_PHONET );
0 commit comments