[edk2] [PATCH] MdeModulePkg SataControllerDxe: Use compare logic in if condition

Star Zeng posted 1 patch 5 years, 9 months ago
Failed in applying to current master (apply log)
MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[edk2] [PATCH] MdeModulePkg SataControllerDxe: Use compare logic in if condition
Posted by Star Zeng 5 years, 9 months ago
Use compare logic in if condition to fix ECC issue.
It is caused by aa4240edff41034d709938a15b42cf4fd3214386.

Cc: Hao Wu <hao.a.wu@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
---
 MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
index d47e918f5757..d3af4c626ef5 100644
--- a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
+++ b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
@@ -483,7 +483,7 @@ SataControllerStart (
     }
     MaxPortNumber = 31;
     while (MaxPortNumber > 0) {
-      if (Data32 & (1 << MaxPortNumber)) {
+      if ((Data32 & (UINT32) (1 << MaxPortNumber)) != 0) {
         break;
       }
       MaxPortNumber--;
-- 
2.7.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] MdeModulePkg SataControllerDxe: Use compare logic in if condition
Posted by Bi, Dandan 5 years, 9 months ago
Reviewed-by: Dandan Bi <dandan.bi@intel.com>

Thanks,
Dandan

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Star Zeng
Sent: Monday, July 2, 2018 5:42 PM
To: edk2-devel@lists.01.org
Cc: Wu, Hao A <hao.a.wu@intel.com>; Bi, Dandan <dandan.bi@intel.com>; Zeng, Star <star.zeng@intel.com>
Subject: [edk2] [PATCH] MdeModulePkg SataControllerDxe: Use compare logic in if condition

Use compare logic in if condition to fix ECC issue.
It is caused by aa4240edff41034d709938a15b42cf4fd3214386.

Cc: Hao Wu <hao.a.wu@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
---
 MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
index d47e918f5757..d3af4c626ef5 100644
--- a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
+++ b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
@@ -483,7 +483,7 @@ SataControllerStart (
     }
     MaxPortNumber = 31;
     while (MaxPortNumber > 0) {
-      if (Data32 & (1 << MaxPortNumber)) {
+      if ((Data32 & (UINT32) (1 << MaxPortNumber)) != 0) {
         break;
       }
       MaxPortNumber--;
-- 
2.7.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] MdeModulePkg SataControllerDxe: Use compare logic in if condition
Posted by Wu, Hao A 5 years, 9 months ago
Maybe:
if ((Data32 & ((UINT32) 1 << MaxPortNumber)) != 0) {
instead of:
if ((Data32 & (UINT32) (1 << MaxPortNumber)) != 0) {

to avoid possible undefined behavior for case like '1 << 31'?

Best Regards,
Hao Wu


> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Star
> Zeng
> Sent: Monday, July 02, 2018 5:42 PM
> To: edk2-devel@lists.01.org
> Cc: Wu, Hao A; Bi, Dandan; Zeng, Star
> Subject: [edk2] [PATCH] MdeModulePkg SataControllerDxe: Use compare logic
> in if condition
> 
> Use compare logic in if condition to fix ECC issue.
> It is caused by aa4240edff41034d709938a15b42cf4fd3214386.
> 
> Cc: Hao Wu <hao.a.wu@intel.com>
> Cc: Dandan Bi <dandan.bi@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Star Zeng <star.zeng@intel.com>
> ---
>  MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
> b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
> index d47e918f5757..d3af4c626ef5 100644
> --- a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
> +++ b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
> @@ -483,7 +483,7 @@ SataControllerStart (
>      }
>      MaxPortNumber = 31;
>      while (MaxPortNumber > 0) {
> -      if (Data32 & (1 << MaxPortNumber)) {
> +      if ((Data32 & (UINT32) (1 << MaxPortNumber)) != 0) {
>          break;
>        }
>        MaxPortNumber--;
> --
> 2.7.0.windows.1
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] MdeModulePkg SataControllerDxe: Use compare logic in if condition
Posted by Zeng, Star 5 years, 9 months ago
Good idea, I agree.

Thanks,
Star
-----Original Message-----
From: Wu, Hao A 
Sent: Tuesday, July 3, 2018 9:05 AM
To: Zeng, Star <star.zeng@intel.com>; edk2-devel@lists.01.org
Cc: Bi, Dandan <dandan.bi@intel.com>; Zeng, Star <star.zeng@intel.com>
Subject: RE: [edk2] [PATCH] MdeModulePkg SataControllerDxe: Use compare logic in if condition

Maybe:
if ((Data32 & ((UINT32) 1 << MaxPortNumber)) != 0) { instead of:
if ((Data32 & (UINT32) (1 << MaxPortNumber)) != 0) {

to avoid possible undefined behavior for case like '1 << 31'?

Best Regards,
Hao Wu


> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of 
> Star Zeng
> Sent: Monday, July 02, 2018 5:42 PM
> To: edk2-devel@lists.01.org
> Cc: Wu, Hao A; Bi, Dandan; Zeng, Star
> Subject: [edk2] [PATCH] MdeModulePkg SataControllerDxe: Use compare 
> logic in if condition
> 
> Use compare logic in if condition to fix ECC issue.
> It is caused by aa4240edff41034d709938a15b42cf4fd3214386.
> 
> Cc: Hao Wu <hao.a.wu@intel.com>
> Cc: Dandan Bi <dandan.bi@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Star Zeng <star.zeng@intel.com>
> ---
>  MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
> b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
> index d47e918f5757..d3af4c626ef5 100644
> --- a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
> +++ b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
> @@ -483,7 +483,7 @@ SataControllerStart (
>      }
>      MaxPortNumber = 31;
>      while (MaxPortNumber > 0) {
> -      if (Data32 & (1 << MaxPortNumber)) {
> +      if ((Data32 & (UINT32) (1 << MaxPortNumber)) != 0) {
>          break;
>        }
>        MaxPortNumber--;
> --
> 2.7.0.windows.1
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] MdeModulePkg SataControllerDxe: Use compare logic in if condition
Posted by Wu, Hao A 5 years, 9 months ago
Thanks.
And with the change:
Reviewed-by: Hao Wu <hao.a.wu@intel.com>

Best Regards,
Hao Wu


> -----Original Message-----
> From: Zeng, Star
> Sent: Tuesday, July 03, 2018 9:17 AM
> To: Wu, Hao A; edk2-devel@lists.01.org
> Cc: Bi, Dandan; Zeng, Star
> Subject: RE: [edk2] [PATCH] MdeModulePkg SataControllerDxe: Use compare
> logic in if condition
> 
> Good idea, I agree.
> 
> Thanks,
> Star
> -----Original Message-----
> From: Wu, Hao A
> Sent: Tuesday, July 3, 2018 9:05 AM
> To: Zeng, Star <star.zeng@intel.com>; edk2-devel@lists.01.org
> Cc: Bi, Dandan <dandan.bi@intel.com>; Zeng, Star <star.zeng@intel.com>
> Subject: RE: [edk2] [PATCH] MdeModulePkg SataControllerDxe: Use compare
> logic in if condition
> 
> Maybe:
> if ((Data32 & ((UINT32) 1 << MaxPortNumber)) != 0) { instead of:
> if ((Data32 & (UINT32) (1 << MaxPortNumber)) != 0) {
> 
> to avoid possible undefined behavior for case like '1 << 31'?
> 
> Best Regards,
> Hao Wu
> 
> 
> > -----Original Message-----
> > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
> > Star Zeng
> > Sent: Monday, July 02, 2018 5:42 PM
> > To: edk2-devel@lists.01.org
> > Cc: Wu, Hao A; Bi, Dandan; Zeng, Star
> > Subject: [edk2] [PATCH] MdeModulePkg SataControllerDxe: Use compare
> > logic in if condition
> >
> > Use compare logic in if condition to fix ECC issue.
> > It is caused by aa4240edff41034d709938a15b42cf4fd3214386.
> >
> > Cc: Hao Wu <hao.a.wu@intel.com>
> > Cc: Dandan Bi <dandan.bi@intel.com>
> > Contributed-under: TianoCore Contribution Agreement 1.1
> > Signed-off-by: Star Zeng <star.zeng@intel.com>
> > ---
> >  MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
> > b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
> > index d47e918f5757..d3af4c626ef5 100644
> > --- a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
> > +++ b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
> > @@ -483,7 +483,7 @@ SataControllerStart (
> >      }
> >      MaxPortNumber = 31;
> >      while (MaxPortNumber > 0) {
> > -      if (Data32 & (1 << MaxPortNumber)) {
> > +      if ((Data32 & (UINT32) (1 << MaxPortNumber)) != 0) {
> >          break;
> >        }
> >        MaxPortNumber--;
> > --
> > 2.7.0.windows.1
> >
> > _______________________________________________
> > edk2-devel mailing list
> > edk2-devel@lists.01.org
> > https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel