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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to