New: Error inserting ipt_LOG (mod_path): Device or resource busy
Subsystems (4)
A message that is not in the archive (sent off-list or not yet received): [email protected]/
Quoted 4 lines · On Sat, 21 Jul 2007 00:44:08 -0700 (PDT) [email protected] wrote:
http://bugzilla.kernel.org/show_bug.cgi?id=8789
Summary: Error inserting
ipt_LOG(mod_path): Device or resource
busy
A 2.6.12 -> 2.6.22 regression.
Quoted 42 lines
Product: Networking Version: 2.5 KernelVersion: 2.6.22 Platform: All OS/Version: Linux Tree: Mainline Status: NEW Severity: blocking Priority: P1 Component: Netfilter/Iptables AssignedTo: [email protected] ReportedBy: [email protected]Most recent kernel where this bug did not occur: 2.6.21.6
Distribution: Fedora 7
Hardware Environment: irrelevant
Software Environment: Fedora 7 + vanilla kernel 2.6.22 Problem Description:After I upgraded to 2.6.22 kernel, my iptables configuration no longer works and I get the above error message. When the error occurs I have these iptables modules loaded:
[root@localhost sysconfig]# lsmod | egrep "x._|ipt" | awk '{print $1}'
xt_limitxt_tcpudpxt_pkttypeipt_ULOGxt_multiportiptable_filterip_tablesx_tables[root@localhost sysconfig]# modprobe
ipt_LOG
FATAL: Error insertingipt_LOG(/lib/modules/2.6.22-k8l/kernel/net/ipv4/netfilter/ipt_LOG.ko): Device or resource busyIf I remove all iptables modules then I can successfully modprobe
ipt_LOG.Steps to reproduce: boot the PC or # service iptables start
Quoted 10 lines · Andrew Morton
Quoted 4 lines · On Sat, 21 Jul 2007 00:44:08 -0700 (PDT) [email protected] wrote:
http://bugzilla.kernel.org/show_bug.cgi?id=8789
Summary: Error inserting
ipt_LOG(mod_path): Device or resource
busyA 2.6.12 -> 2.6.22 regression.
Crap, that was my fault.
T., can you please test whether this patch fixes it?
net/bridge/netfilter/ebt_log.c +2 -4
@@ -196,10 +196,8 @@ static int __init ebt_log_init(void) ret =ebt_register_watcher (&log);if (ret <0 )return ret; - ret =nf_log_register (PF_BRIDGE , &ebt_log_logger); -if (ret <0 && ret != -EEXIST ) -ebt_unregister_watcher (&log); -return ret; +nf_log_register (PF_BRIDGE , &ebt_log_logger); +return 0 ; } static void __exit ebt_log_fini(void)
net/bridge/netfilter/ebt_ulog.c +2 -6
@@ -308,12 +308,8 @@ static int __init ebt_ulog_init(void)else if ((ret =ebt_register_watcher (&ulog)))sock_release (ebtulognl->sk_socket); -if (nf_log_register (PF_BRIDGE , &ebt_ulog_logger) <0 ) { -printk (KERN_WARNING "ebt_ulog: not logging via ulog " -"since somebody else already registered for PF_BRIDGE\n" ); -/* we cannot make module load fail here, since otherwise -* ebtables userspace would abort */ - } +if (ret ==0 ) +nf_log_register (PF_BRIDGE , &ebt_ulog_logger);return ret; }
net/ipv4/netfilter/ipt_LOG.c +2 -4
@@ -479,10 +479,8 @@ static int __init ipt_log_init(void) ret =xt_register_target (&ipt_log_reg);if (ret <0 )return ret; - ret =nf_log_register (PF_INET , &ipt_log_logger); -if (ret <0 && ret != -EEXIST ) -xt_unregister_target (&ipt_log_reg); -return ret; +nf_log_register (PF_INET , &ipt_log_logger); +return 0 ; } static void __exit ipt_log_fini(void)
net/ipv6/netfilter/ip6t_LOG.c +2 -4
@@ -493,10 +493,8 @@ static int __init ip6t_log_init(void) ret =xt_register_target (&ip6t_log_reg);if (ret <0 )return ret; - ret =nf_log_register (PF_INET6 , &ip6t_logger); -if (ret <0 && ret != -EEXIST ) -xt_unregister_target (&ip6t_log_reg); -return ret; +nf_log_register (PF_INET6 , &ip6t_logger); +return 0 ; } static void __exit ip6t_log_fini(void)