Previously, modprobe would exit silently and status 0 when the module indicies went missing, such as in the case of replacing your currently running kernel without rebooting. This is easily confused with success, since modprobe is normally quiet about its work. Catch the failure from kmod_load_resources and notify the user. This requires adding builtin files to the modprobe test subdirectories to ensure that tests continue to pass. --- .../lib/modules/3.5.4-1-ARCH/modules.builtin.bin | Bin 0 -> 5115 bytes .../lib/modules/4.4.4/modules.builtin.bin | Bin 0 -> 5115 bytes .../show-depends/lib/modules/4.4.4/modules.builtin.bin | Bin 0 -> 5115 bytes .../softdep-loop/lib/modules/4.4.4/modules.builtin.bin | Bin 0 -> 5115 bytes tools/modprobe.c | 6 +++++- 5 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 testsuite/rootfs-pristine/test-depmod/modules-order-compressed/lib/modules/3.5.4-1-ARCH/modules.builtin.bin create mode 100644 testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.builtin.bin create mode 100644 testsuite/rootfs-pristine/test-modprobe/show-depends/lib/modules/4.4.4/modules.builtin.bin create mode 100644 testsuite/rootfs-pristine/test-modprobe/softdep-loop/lib/modules/4.4.4/modules.builtin.bin diff --git a/testsuite/rootfs-pristine/test-depmod/modules-order-compressed/lib/modules/3.5.4-1-ARCH/modules.builtin.bin b/testsuite/rootfs-pristine/test-depmod/modules-order-compressed/lib/modules/3.5.4-1-ARCH/modules.builtin.bin new file mode 100644 index 0000000000000000000000000000000000000000..9a11ac74e8719f47bfc1ba18182fe677d37733e9 GIT binary patch literal 5115 zcmdT|TWB0r82;04l1-CMHhqv55k|2}^`T8nVu}|63RV!o2NA*cbmq+L?yz&q%xuyW zszJdU1+gHazN{2MAH*tHL9h(^Aczlr5foqcK~xkK@dhI5cXl$n|4ueGNquM!oSpOE zzVn~kfBv&)hkt#DcF=%EyMORQi%<sC4@q17rtRt3gMws`5RED3R!Ty&*Qtw|<pfr! z3{yn2+q66@v}Ko`pA&O4U9x&SA$nZVmr@d<)3&g^*m4w1>V)t#qE{8YostlJuSfV@ z-i~$NMkD&mwDqduuXz{fvTnsBL_!0nI&8i!Q^K^QZ}N$CT`R_Pin_HDb+Nn^V0@tH z%@pWfs2gmFV!slxB{3QaQCqCgG#a?GMFTIZHZ0#(-^~=*eVx#bJ*fL+-Lb2+Sed1R zueh;r?TBp)$7W({sjF&)KzKvZ+bys^=f(Jau^)m)J3iEHNT2K{&3GE^Ec(HU9$LC$ zrK7MNC$uE<+pQW7BPC#W-j_k3eT20=Vf&G+S!^AQMRapA)7k15_^;@;XS2EUDt47^ zlQ{*s=6dd^U=tShbfnWH<uNMU*kMfF0(l7}wWy$AQWU4E2P}>_b!i7RzFqaGri@bU z#coqy2HsIrSMl-%{KxXV&C;+vRb`P#xEdAuF8sw1f%F@6Qs0A^On-q24_?eFlOLnO z0l9*{@5wm-=eJ3Nhbtj=%bN-nEC16*=#c%L$ut@~shf`NS?l*+Btk3loh80{?ZrvQ zZ{ZXUO=dtFeWA0T%Rt{DZBdhKlUs{?hx%b$VLNn2S!Xj2>t+t^ts1V2p-o>G&^^r& zR9mB=_uC;o?FO8*A+aTgugYs*3cWzX*ZQ#@vs;(VgKTIteA9OE;p=K<i}rKAhl>P& zDom&2;W1R2EgJq7dVhArp}UM=CZwZBZ2mnKy$t^t6^F7;^52Atd-FU+gMXkhH9hY( z97U$SRP#xI*}nFQD&(dbE(Xvc?Bx~}w|QoZuRB#=82mQr&3gpt5>Ec2x=U!JaByb2 z+q0-4V#T`QSZq>yuI<q8YMTxK?pE|h1@Z@CnnQFQIk1t=<-*r!<VYhHvS+%iph+W7 zY}Unub{)WtAeDZ)u1oCBnO0bRV+f|_y3O`+CFyCjYXNhD*tu)fFxfuySR$CqTHW^1 z7(LUO!f+{}(Vo-LqS1HE{L$r!qpl_?U4U8)>+iNQY0&>YV!j%r2O5o~a9aUd(@kjX zRu*u5H^5E9ju%qgJj=&(#Dv{x)HBuzc=QGDxJhGoak^g{mQVHLXFOn>(^<^X10_iZ zDVNB>w3V*Ol>2=l-!F9}a9z7bWSKndveZb&-Y?C<=4d~x|Kh>MMLih@q3sJ<4gCgl zRhK;f^sE@Sd%eAbN-dzK<IyALWaQ7!&mIy}s?Ss$2{MqWjt?qUzXI8A3$d>BNsCH9 z_S0z6`1Q7l6ryTJak!#XQtWk0YdGoarK=(vz+YALr54~k-y6QF?Wq|58OUo>q54Rh zQb^Zl`_PM9H2zQChlD1|s8>g}aD8@t_fk$SY<4=)eHgb7dmi{=^a4#R``A%RFLgL1 z8_Dd%Dz^msd3}0zPOQ6PSJ)A*#Ig}ae%Qs5%CCD-A8yjbrx_yXuUK1U3!Rcsd8lFV z*xqw52I-M4-w(Y<tkBgR5%DLgV`1f4b|LL1mD>lT(*qhXMzkwG6Nui&axY~cZ!c^4 zV_2-MrSJA+5IuL8&6dp|Q9}pc<U0L>)2f}&WWkJ}`CeYqk8V-<vpl~^ljVbl)I(ha zdKmG%I-e4=O{iY{3Mn1dEJEMpqj}^jmBv_J*oyDaf32TB_-7s4z~4O;rzg9fKhY%G z*U#i~;^7a68NA$Xz-#PFJVp+qUeKs`8<NrnzV9MwIE5SUS&c?N(r65|^t49fIIQD! fd{tsV8cp1+QF#yQOBzkyo{bOf^QxWD?$7@Pu#3b{ literal 0 HcmV?d00001 diff --git a/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.builtin.bin b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.builtin.bin new file mode 100644 index 0000000000000000000000000000000000000000..9a11ac74e8719f47bfc1ba18182fe677d37733e9 GIT binary patch literal 5115 zcmdT|TWB0r82;04l1-CMHhqv55k|2}^`T8nVu}|63RV!o2NA*cbmq+L?yz&q%xuyW zszJdU1+gHazN{2MAH*tHL9h(^Aczlr5foqcK~xkK@dhI5cXl$n|4ueGNquM!oSpOE zzVn~kfBv&)hkt#DcF=%EyMORQi%<sC4@q17rtRt3gMws`5RED3R!Ty&*Qtw|<pfr! z3{yn2+q66@v}Ko`pA&O4U9x&SA$nZVmr@d<)3&g^*m4w1>V)t#qE{8YostlJuSfV@ z-i~$NMkD&mwDqduuXz{fvTnsBL_!0nI&8i!Q^K^QZ}N$CT`R_Pin_HDb+Nn^V0@tH z%@pWfs2gmFV!slxB{3QaQCqCgG#a?GMFTIZHZ0#(-^~=*eVx#bJ*fL+-Lb2+Sed1R zueh;r?TBp)$7W({sjF&)KzKvZ+bys^=f(Jau^)m)J3iEHNT2K{&3GE^Ec(HU9$LC$ zrK7MNC$uE<+pQW7BPC#W-j_k3eT20=Vf&G+S!^AQMRapA)7k15_^;@;XS2EUDt47^ zlQ{*s=6dd^U=tShbfnWH<uNMU*kMfF0(l7}wWy$AQWU4E2P}>_b!i7RzFqaGri@bU z#coqy2HsIrSMl-%{KxXV&C;+vRb`P#xEdAuF8sw1f%F@6Qs0A^On-q24_?eFlOLnO z0l9*{@5wm-=eJ3Nhbtj=%bN-nEC16*=#c%L$ut@~shf`NS?l*+Btk3loh80{?ZrvQ zZ{ZXUO=dtFeWA0T%Rt{DZBdhKlUs{?hx%b$VLNn2S!Xj2>t+t^ts1V2p-o>G&^^r& zR9mB=_uC;o?FO8*A+aTgugYs*3cWzX*ZQ#@vs;(VgKTIteA9OE;p=K<i}rKAhl>P& zDom&2;W1R2EgJq7dVhArp}UM=CZwZBZ2mnKy$t^t6^F7;^52Atd-FU+gMXkhH9hY( z97U$SRP#xI*}nFQD&(dbE(Xvc?Bx~}w|QoZuRB#=82mQr&3gpt5>Ec2x=U!JaByb2 z+q0-4V#T`QSZq>yuI<q8YMTxK?pE|h1@Z@CnnQFQIk1t=<-*r!<VYhHvS+%iph+W7 zY}Unub{)WtAeDZ)u1oCBnO0bRV+f|_y3O`+CFyCjYXNhD*tu)fFxfuySR$CqTHW^1 z7(LUO!f+{}(Vo-LqS1HE{L$r!qpl_?U4U8)>+iNQY0&>YV!j%r2O5o~a9aUd(@kjX zRu*u5H^5E9ju%qgJj=&(#Dv{x)HBuzc=QGDxJhGoak^g{mQVHLXFOn>(^<^X10_iZ zDVNB>w3V*Ol>2=l-!F9}a9z7bWSKndveZb&-Y?C<=4d~x|Kh>MMLih@q3sJ<4gCgl zRhK;f^sE@Sd%eAbN-dzK<IyALWaQ7!&mIy}s?Ss$2{MqWjt?qUzXI8A3$d>BNsCH9 z_S0z6`1Q7l6ryTJak!#XQtWk0YdGoarK=(vz+YALr54~k-y6QF?Wq|58OUo>q54Rh zQb^Zl`_PM9H2zQChlD1|s8>g}aD8@t_fk$SY<4=)eHgb7dmi{=^a4#R``A%RFLgL1 z8_Dd%Dz^msd3}0zPOQ6PSJ)A*#Ig}ae%Qs5%CCD-A8yjbrx_yXuUK1U3!Rcsd8lFV z*xqw52I-M4-w(Y<tkBgR5%DLgV`1f4b|LL1mD>lT(*qhXMzkwG6Nui&axY~cZ!c^4 zV_2-MrSJA+5IuL8&6dp|Q9}pc<U0L>)2f}&WWkJ}`CeYqk8V-<vpl~^ljVbl)I(ha zdKmG%I-e4=O{iY{3Mn1dEJEMpqj}^jmBv_J*oyDaf32TB_-7s4z~4O;rzg9fKhY%G z*U#i~;^7a68NA$Xz-#PFJVp+qUeKs`8<NrnzV9MwIE5SUS&c?N(r65|^t49fIIQD! fd{tsV8cp1+QF#yQOBzkyo{bOf^QxWD?$7@Pu#3b{ literal 0 HcmV?d00001 diff --git a/testsuite/rootfs-pristine/test-modprobe/show-depends/lib/modules/4.4.4/modules.builtin.bin b/testsuite/rootfs-pristine/test-modprobe/show-depends/lib/modules/4.4.4/modules.builtin.bin new file mode 100644 index 0000000000000000000000000000000000000000..9a11ac74e8719f47bfc1ba18182fe677d37733e9 GIT binary patch literal 5115 zcmdT|TWB0r82;04l1-CMHhqv55k|2}^`T8nVu}|63RV!o2NA*cbmq+L?yz&q%xuyW zszJdU1+gHazN{2MAH*tHL9h(^Aczlr5foqcK~xkK@dhI5cXl$n|4ueGNquM!oSpOE zzVn~kfBv&)hkt#DcF=%EyMORQi%<sC4@q17rtRt3gMws`5RED3R!Ty&*Qtw|<pfr! z3{yn2+q66@v}Ko`pA&O4U9x&SA$nZVmr@d<)3&g^*m4w1>V)t#qE{8YostlJuSfV@ z-i~$NMkD&mwDqduuXz{fvTnsBL_!0nI&8i!Q^K^QZ}N$CT`R_Pin_HDb+Nn^V0@tH z%@pWfs2gmFV!slxB{3QaQCqCgG#a?GMFTIZHZ0#(-^~=*eVx#bJ*fL+-Lb2+Sed1R zueh;r?TBp)$7W({sjF&)KzKvZ+bys^=f(Jau^)m)J3iEHNT2K{&3GE^Ec(HU9$LC$ zrK7MNC$uE<+pQW7BPC#W-j_k3eT20=Vf&G+S!^AQMRapA)7k15_^;@;XS2EUDt47^ zlQ{*s=6dd^U=tShbfnWH<uNMU*kMfF0(l7}wWy$AQWU4E2P}>_b!i7RzFqaGri@bU z#coqy2HsIrSMl-%{KxXV&C;+vRb`P#xEdAuF8sw1f%F@6Qs0A^On-q24_?eFlOLnO z0l9*{@5wm-=eJ3Nhbtj=%bN-nEC16*=#c%L$ut@~shf`NS?l*+Btk3loh80{?ZrvQ zZ{ZXUO=dtFeWA0T%Rt{DZBdhKlUs{?hx%b$VLNn2S!Xj2>t+t^ts1V2p-o>G&^^r& zR9mB=_uC;o?FO8*A+aTgugYs*3cWzX*ZQ#@vs;(VgKTIteA9OE;p=K<i}rKAhl>P& zDom&2;W1R2EgJq7dVhArp}UM=CZwZBZ2mnKy$t^t6^F7;^52Atd-FU+gMXkhH9hY( z97U$SRP#xI*}nFQD&(dbE(Xvc?Bx~}w|QoZuRB#=82mQr&3gpt5>Ec2x=U!JaByb2 z+q0-4V#T`QSZq>yuI<q8YMTxK?pE|h1@Z@CnnQFQIk1t=<-*r!<VYhHvS+%iph+W7 zY}Unub{)WtAeDZ)u1oCBnO0bRV+f|_y3O`+CFyCjYXNhD*tu)fFxfuySR$CqTHW^1 z7(LUO!f+{}(Vo-LqS1HE{L$r!qpl_?U4U8)>+iNQY0&>YV!j%r2O5o~a9aUd(@kjX zRu*u5H^5E9ju%qgJj=&(#Dv{x)HBuzc=QGDxJhGoak^g{mQVHLXFOn>(^<^X10_iZ zDVNB>w3V*Ol>2=l-!F9}a9z7bWSKndveZb&-Y?C<=4d~x|Kh>MMLih@q3sJ<4gCgl zRhK;f^sE@Sd%eAbN-dzK<IyALWaQ7!&mIy}s?Ss$2{MqWjt?qUzXI8A3$d>BNsCH9 z_S0z6`1Q7l6ryTJak!#XQtWk0YdGoarK=(vz+YALr54~k-y6QF?Wq|58OUo>q54Rh zQb^Zl`_PM9H2zQChlD1|s8>g}aD8@t_fk$SY<4=)eHgb7dmi{=^a4#R``A%RFLgL1 z8_Dd%Dz^msd3}0zPOQ6PSJ)A*#Ig}ae%Qs5%CCD-A8yjbrx_yXuUK1U3!Rcsd8lFV z*xqw52I-M4-w(Y<tkBgR5%DLgV`1f4b|LL1mD>lT(*qhXMzkwG6Nui&axY~cZ!c^4 zV_2-MrSJA+5IuL8&6dp|Q9}pc<U0L>)2f}&WWkJ}`CeYqk8V-<vpl~^ljVbl)I(ha zdKmG%I-e4=O{iY{3Mn1dEJEMpqj}^jmBv_J*oyDaf32TB_-7s4z~4O;rzg9fKhY%G z*U#i~;^7a68NA$Xz-#PFJVp+qUeKs`8<NrnzV9MwIE5SUS&c?N(r65|^t49fIIQD! fd{tsV8cp1+QF#yQOBzkyo{bOf^QxWD?$7@Pu#3b{ literal 0 HcmV?d00001 diff --git a/testsuite/rootfs-pristine/test-modprobe/softdep-loop/lib/modules/4.4.4/modules.builtin.bin b/testsuite/rootfs-pristine/test-modprobe/softdep-loop/lib/modules/4.4.4/modules.builtin.bin new file mode 100644 index 0000000000000000000000000000000000000000..9a11ac74e8719f47bfc1ba18182fe677d37733e9 GIT binary patch literal 5115 zcmdT|TWB0r82;04l1-CMHhqv55k|2}^`T8nVu}|63RV!o2NA*cbmq+L?yz&q%xuyW zszJdU1+gHazN{2MAH*tHL9h(^Aczlr5foqcK~xkK@dhI5cXl$n|4ueGNquM!oSpOE zzVn~kfBv&)hkt#DcF=%EyMORQi%<sC4@q17rtRt3gMws`5RED3R!Ty&*Qtw|<pfr! z3{yn2+q66@v}Ko`pA&O4U9x&SA$nZVmr@d<)3&g^*m4w1>V)t#qE{8YostlJuSfV@ z-i~$NMkD&mwDqduuXz{fvTnsBL_!0nI&8i!Q^K^QZ}N$CT`R_Pin_HDb+Nn^V0@tH z%@pWfs2gmFV!slxB{3QaQCqCgG#a?GMFTIZHZ0#(-^~=*eVx#bJ*fL+-Lb2+Sed1R zueh;r?TBp)$7W({sjF&)KzKvZ+bys^=f(Jau^)m)J3iEHNT2K{&3GE^Ec(HU9$LC$ zrK7MNC$uE<+pQW7BPC#W-j_k3eT20=Vf&G+S!^AQMRapA)7k15_^;@;XS2EUDt47^ zlQ{*s=6dd^U=tShbfnWH<uNMU*kMfF0(l7}wWy$AQWU4E2P}>_b!i7RzFqaGri@bU z#coqy2HsIrSMl-%{KxXV&C;+vRb`P#xEdAuF8sw1f%F@6Qs0A^On-q24_?eFlOLnO z0l9*{@5wm-=eJ3Nhbtj=%bN-nEC16*=#c%L$ut@~shf`NS?l*+Btk3loh80{?ZrvQ zZ{ZXUO=dtFeWA0T%Rt{DZBdhKlUs{?hx%b$VLNn2S!Xj2>t+t^ts1V2p-o>G&^^r& zR9mB=_uC;o?FO8*A+aTgugYs*3cWzX*ZQ#@vs;(VgKTIteA9OE;p=K<i}rKAhl>P& zDom&2;W1R2EgJq7dVhArp}UM=CZwZBZ2mnKy$t^t6^F7;^52Atd-FU+gMXkhH9hY( z97U$SRP#xI*}nFQD&(dbE(Xvc?Bx~}w|QoZuRB#=82mQr&3gpt5>Ec2x=U!JaByb2 z+q0-4V#T`QSZq>yuI<q8YMTxK?pE|h1@Z@CnnQFQIk1t=<-*r!<VYhHvS+%iph+W7 zY}Unub{)WtAeDZ)u1oCBnO0bRV+f|_y3O`+CFyCjYXNhD*tu)fFxfuySR$CqTHW^1 z7(LUO!f+{}(Vo-LqS1HE{L$r!qpl_?U4U8)>+iNQY0&>YV!j%r2O5o~a9aUd(@kjX zRu*u5H^5E9ju%qgJj=&(#Dv{x)HBuzc=QGDxJhGoak^g{mQVHLXFOn>(^<^X10_iZ zDVNB>w3V*Ol>2=l-!F9}a9z7bWSKndveZb&-Y?C<=4d~x|Kh>MMLih@q3sJ<4gCgl zRhK;f^sE@Sd%eAbN-dzK<IyALWaQ7!&mIy}s?Ss$2{MqWjt?qUzXI8A3$d>BNsCH9 z_S0z6`1Q7l6ryTJak!#XQtWk0YdGoarK=(vz+YALr54~k-y6QF?Wq|58OUo>q54Rh zQb^Zl`_PM9H2zQChlD1|s8>g}aD8@t_fk$SY<4=)eHgb7dmi{=^a4#R``A%RFLgL1 z8_Dd%Dz^msd3}0zPOQ6PSJ)A*#Ig}ae%Qs5%CCD-A8yjbrx_yXuUK1U3!Rcsd8lFV z*xqw52I-M4-w(Y<tkBgR5%DLgV`1f4b|LL1mD>lT(*qhXMzkwG6Nui&axY~cZ!c^4 zV_2-MrSJA+5IuL8&6dp|Q9}pc<U0L>)2f}&WWkJ}`CeYqk8V-<vpl~^ljVbl)I(ha zdKmG%I-e4=O{iY{3Mn1dEJEMpqj}^jmBv_J*oyDaf32TB_-7s4z~4O;rzg9fKhY%G z*U#i~;^7a68NA$Xz-#PFJVp+qUeKs`8<NrnzV9MwIE5SUS&c?N(r65|^t49fIIQD! fd{tsV8cp1+QF#yQOBzkyo{bOf^QxWD?$7@Pu#3b{ literal 0 HcmV?d00001 diff --git a/tools/modprobe.c b/tools/modprobe.c index 64674b0..ad2517a 100644 --- a/tools/modprobe.c +++ b/tools/modprobe.c @@ -900,7 +900,11 @@ static int do_modprobe(int argc, char **orig_argv) log_setup_kmod_log(ctx, verbose); - kmod_load_resources(ctx); + err = kmod_load_resources(ctx); + if (err < 0) { + ERR("Failed to load module indicies: %s\n", strerror(-err)); + goto done; + } if (do_show_config) err = show_config(ctx); -- 1.8.1.1 -- To unsubscribe from this list: send the line "unsubscribe linux-modules" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html