{
char name [MAX_NAMELEN];
-+ if (IS_ENABLED(CONFIG_PROC_STRIPPED))
++ if (IS_ENABLED(CONFIG_PROC_STRIPPED) && !IS_ENABLED(CONFIG_SMP))
+ return;
+
if (!root_irq_dir || (desc->irq_data.chip == &no_irq_chip) || desc->dir)
{
char name [MAX_NAMELEN];
-+ if (IS_ENABLED(CONFIG_PROC_STRIPPED))
++ if (IS_ENABLED(CONFIG_PROC_STRIPPED) && !IS_ENABLED(CONFIG_SMP))
+ return;
+
if (!root_irq_dir || !desc->dir)
unsigned int irq;
struct irq_desc *desc;
-+ if (IS_ENABLED(CONFIG_PROC_STRIPPED))
++ if (IS_ENABLED(CONFIG_PROC_STRIPPED) && !IS_ENABLED(CONFIG_SMP))
+ return;
+
/* create /proc/irq */
goto err;
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -2857,6 +2857,8 @@ static __net_initdata struct pernet_oper
+@@ -2845,6 +2845,8 @@ static __net_initdata struct pernet_oper
static int __init proto_init(void)
{
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
-@@ -2598,10 +2598,12 @@ static const struct file_operations fib_
+@@ -2599,10 +2599,12 @@ static const struct file_operations fib_
int __net_init fib_proc_init(struct net *net)
{
&fib_triestat_fops))
goto out2;
-@@ -2611,17 +2613,21 @@ int __net_init fib_proc_init(struct net
+@@ -2612,17 +2614,21 @@ int __net_init fib_proc_init(struct net
return 0;
out3:
remove_proc_entry("route", net->proc_net);
}
---- a/net/ipv4/ipmr.c
-+++ b/net/ipv4/ipmr.c
-@@ -71,6 +71,10 @@
- #define CONFIG_IP_PIMSM 1
- #endif
-
-+#ifdef CONFIG_PROC_STRIPPED
-+#undef CONFIG_PROC_FS
-+#endif
-+
- struct mr_table {
- struct list_head list;
- #ifdef CONFIG_NET_NS
--- a/net/ipv4/proc.c
+++ b/net/ipv4/proc.c
@@ -503,6 +503,9 @@ static __net_initdata struct pernet_oper