diff --git a/include/net/llc.h b/include/net/llc.h
index 93e5b44..1adb2ef 100644
--- a/include/net/llc.h
+++ b/include/net/llc.h
@@ -89,10 +89,10 @@
 	atomic_inc(&sap->refcnt);
 }
 
+extern void llc_sap_close(struct llc_sap *sap);
+
 static inline void llc_sap_put(struct llc_sap *sap)
 {
-	extern void llc_sap_close(struct llc_sap *sap);
-
 	if (atomic_dec_and_test(&sap->refcnt))
 		llc_sap_close(sap);
 }
@@ -102,6 +102,9 @@
 extern int llc_build_and_send_ui_pkt(struct llc_sap *sap, struct sk_buff *skb,
 				     unsigned char *dmac, unsigned char dsap);
 
+extern void llc_sap_handler(struct llc_sap *sap, struct sk_buff *skb);
+extern void llc_conn_handler(struct llc_sap *sap, struct sk_buff *skb);
+
 extern int llc_station_init(void);
 extern void llc_station_exit(void);
 
@@ -115,6 +118,12 @@
 #ifdef CONFIG_SYSCTL
 extern int llc_sysctl_init(void);
 extern void llc_sysctl_exit(void);
+
+extern int sysctl_llc2_ack_timeout;
+extern int sysctl_llc2_busy_timeout;
+extern int sysctl_llc2_p_timeout;
+extern int sysctl_llc2_rej_timeout;
+extern int sysctl_llc_station_ack_timeout;
 #else
 #define llc_sysctl_init() (0)
 #define llc_sysctl_exit() do { } while(0)
diff --git a/include/net/llc_conn.h b/include/net/llc_conn.h
index b288921..e44f494 100644
--- a/include/net/llc_conn.h
+++ b/include/net/llc_conn.h
@@ -92,7 +92,8 @@
 	return skb->cb[sizeof(skb->cb) - 1];
 }
 
-extern struct sock *llc_sk_alloc(int family, int priority, struct proto *prot);
+extern struct sock *llc_sk_alloc(int family, unsigned int __nocast priority,
+				 struct proto *prot);
 extern void llc_sk_free(struct sock *sk);
 
 extern void llc_sk_reset(struct sock *sk);
diff --git a/net/llc/af_llc.c b/net/llc/af_llc.c
index 3361ae9..7aa51eb 100644
--- a/net/llc/af_llc.c
+++ b/net/llc/af_llc.c
@@ -555,7 +555,7 @@
 	return rc;
 }
 
-int llc_wait_data(struct sock *sk, long timeo)
+static int llc_wait_data(struct sock *sk, long timeo)
 {
 	int rc;
 
@@ -1003,9 +1003,6 @@
 	.sendpage    = sock_no_sendpage,
 };
 
-extern void llc_sap_handler(struct llc_sap *sap, struct sk_buff *skb);
-extern void llc_conn_handler(struct llc_sap *sap, struct sk_buff *skb);
-
 static char llc_proc_err_msg[] __initdata =
         KERN_CRIT "LLC: Unable to register the proc_fs entries\n";
 static char llc_sysctl_err_msg[] __initdata =
diff --git a/net/llc/llc_c_ac.c b/net/llc/llc_c_ac.c
index 05236c2..8f7b46d 100644
--- a/net/llc/llc_c_ac.c
+++ b/net/llc/llc_c_ac.c
@@ -1321,7 +1321,7 @@
 	return 0;
 }
 
-int llc_conn_ac_inc_vs_by_1(struct sock *sk, struct sk_buff *skb)
+static int llc_conn_ac_inc_vs_by_1(struct sock *sk, struct sk_buff *skb)
 {
 	llc_sk(sk)->vS = (llc_sk(sk)->vS + 1) % 128;
 	return 0;
diff --git a/net/llc/llc_conn.c b/net/llc/llc_conn.c
index ab9e6d7..76f94e0 100644
--- a/net/llc/llc_conn.c
+++ b/net/llc/llc_conn.c
@@ -819,7 +819,8 @@
  *	Allocates a LLC sock and initializes it. Returns the new LLC sock
  *	or %NULL if there's no memory available for one
  */
-struct sock *llc_sk_alloc(int family, int priority, struct proto *prot)
+struct sock *llc_sk_alloc(int family, unsigned int __nocast priority,
+			 struct proto *prot)
 {
 	struct sock *sk = sk_alloc(family, priority, prot, 1);
 
diff --git a/net/llc/llc_core.c b/net/llc/llc_core.c
index 9ccff12..ab0fcd3 100644
--- a/net/llc/llc_core.c
+++ b/net/llc/llc_core.c
@@ -69,7 +69,7 @@
 	write_unlock_bh(&llc_sap_list_lock);
 }
 
-struct llc_sap *__llc_sap_find(unsigned char sap_value)
+static struct llc_sap *__llc_sap_find(unsigned char sap_value)
 {
 	struct llc_sap* sap;
 
diff --git a/net/llc/sysctl_net_llc.c b/net/llc/sysctl_net_llc.c
index 4d99d2f..d1eaddb 100644
--- a/net/llc/sysctl_net_llc.c
+++ b/net/llc/sysctl_net_llc.c
@@ -8,17 +8,12 @@
 #include <linux/mm.h>
 #include <linux/init.h>
 #include <linux/sysctl.h>
+#include <net/llc.h>
 
 #ifndef CONFIG_SYSCTL
 #error This file should not be compiled without CONFIG_SYSCTL defined
 #endif
 
-extern int sysctl_llc2_ack_timeout;
-extern int sysctl_llc2_busy_timeout;
-extern int sysctl_llc2_p_timeout;
-extern int sysctl_llc2_rej_timeout;
-extern int sysctl_llc_station_ack_timeout;
-
 static struct ctl_table llc2_timeout_table[] = {
 	{
 		.ctl_name	= NET_LLC2_ACK_TIMEOUT,
