Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1dfdf991 authored by Greentime Hu's avatar Greentime Hu
Browse files

nds32: fix logic for module



This bug is report by Dan Carpenter. We shall use ~loc_mask instead of
!loc_mask because we need to and(&) the bits of ~loc_mask.

Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Fixes: c9a4a8da ("nds32: Loadable modules")
Signed-off-by: default avatarGreentime Hu <greentime@andestech.com>
parent 57361846
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ void do_reloc16(unsigned int val, unsigned int *loc, unsigned int val_mask,

	tmp2 = tmp & loc_mask;
	if (partial_in_place) {
		tmp &= (!loc_mask);
		tmp &= (~loc_mask);
		tmp =
		    tmp2 | ((tmp + ((val & val_mask) >> val_shift)) & val_mask);
	} else {
@@ -70,7 +70,7 @@ void do_reloc32(unsigned int val, unsigned int *loc, unsigned int val_mask,

	tmp2 = tmp & loc_mask;
	if (partial_in_place) {
		tmp &= (!loc_mask);
		tmp &= (~loc_mask);
		tmp =
		    tmp2 | ((tmp + ((val & val_mask) >> val_shift)) & val_mask);
	} else {