<p>Ryan Salsamendi has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/20447">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">northbridge/intel/haswell: Fix undefined behavior.<br><br>Fix reports found by undefined behavior sanitizer. Left shifting an int<br>where the right operand is >= the width of the type is undefined. Add<br>UL suffix since it's safe for unsigned types.<br><br>Change-Id: If2d34e4f05494c17bf9b9dec113b8f6863214e56<br>Signed-off-by: Ryan Salsamendi <rsalsamendi@hotmail.com><br>---<br>M src/drivers/intel/gma/i915_reg.h<br>M src/northbridge/intel/haswell/gma.c<br>M src/northbridge/intel/haswell/northbridge.c<br>3 files changed, 12 insertions(+), 7 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/47/20447/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/src/drivers/intel/gma/i915_reg.h b/src/drivers/intel/gma/i915_reg.h<br>index dee6865..e88ecfb 100644<br>--- a/src/drivers/intel/gma/i915_reg.h<br>+++ b/src/drivers/intel/gma/i915_reg.h<br>@@ -2979,7 +2979,7 @@<br> /* Ironlake */<br> <br> #define CPU_VGACNTRL 0x41000<br>-#define CPU_VGA_DISABLE (1<<31)<br>+#define CPU_VGA_DISABLE (1UL<<31)<br> <br> #define DIGITAL_PORT_HOTPLUG_CNTRL 0x44030<br> #define DIGITAL_PORTA_HOTPLUG_ENABLE (1 << 4)<br>@@ -4177,7 +4177,7 @@<br> #define HSW_PWR_WELL_CTL2 0x45404 /* Driver */<br> #define HSW_PWR_WELL_CTL3 0x45408 /* KVMR */<br> #define HSW_PWR_WELL_CTL4 0x4540C /* Debug */<br>-#define HSW_PWR_WELL_ENABLE (1<<31)<br>+#define HSW_PWR_WELL_ENABLE (1UL<<31)<br> #define HSW_PWR_WELL_STATE (1<<30)<br> #define HSW_PWR_WELL_CTL5 0x45410<br> #define HSW_PWR_WELL_ENABLE_SINGLE_STEP (1<<31)<br>diff --git a/src/northbridge/intel/haswell/gma.c b/src/northbridge/intel/haswell/gma.c<br>index f22ff48..75f3b7a 100644<br>--- a/src/northbridge/intel/haswell/gma.c<br>+++ b/src/northbridge/intel/haswell/gma.c<br>@@ -252,13 +252,13 @@<br> gtt_write_regs(haswell_gt_setup);<br> <br> /* Wait for Mailbox Ready */<br>- gtt_poll(0x138124, (1 << 31), (0 << 31));<br>+ gtt_poll(0x138124, (1UL << 31), (0UL << 31));<br> /* Mailbox Data - RC6 VIDS */<br> gtt_write(0x138128, 0x00000000);<br> /* Mailbox Command */<br> gtt_write(0x138124, 0x80000004);<br> /* Wait for Mailbox Ready */<br>- gtt_poll(0x138124, (1 << 31), (0 << 31));<br>+ gtt_poll(0x138124, (1UL << 31), (0UL << 31));<br> <br> /* Enable PM Interrupts */<br> gtt_write(GEN6_PMIER, GEN6_PM_MBOX_EVENT | GEN6_PM_THERMAL_EVENT |<br>diff --git a/src/northbridge/intel/haswell/northbridge.c b/src/northbridge/intel/haswell/northbridge.c<br>index a8c8015..3753942 100644<br>--- a/src/northbridge/intel/haswell/northbridge.c<br>+++ b/src/northbridge/intel/haswell/northbridge.c<br>@@ -36,6 +36,7 @@<br> static int get_pcie_bar(device_t dev, unsigned int index, u32 *base, u32 *len)<br> {<br> u32 pciexbar_reg;<br>+ u32 mask;<br> <br> *base = 0;<br> *len = 0;<br>@@ -47,15 +48,19 @@<br> <br> switch ((pciexbar_reg >> 1) & 3) {<br> case 0: // 256MB<br>- *base = pciexbar_reg & ((1 << 31)|(1 << 30)|(1 << 29)|(1 << 28));<br>+ mask = ((1UL << 31)|(1 << 30)|(1 << 29)|(1 << 28));<br>+ *base = pciexbar_reg & mask;<br> *len = 256 * 1024 * 1024;<br> return 1;<br> case 1: // 128M<br>- *base = pciexbar_reg & ((1 << 31)|(1 << 30)|(1 << 29)|(1 << 28)|(1 << 27));<br>+ mask = ((1UL << 31)|(1 << 30)|(1 << 29)|(1 << 28)|(1 << 27));<br>+ *base = pciexbar_reg & mask;<br> *len = 128 * 1024 * 1024;<br> return 1;<br> case 2: // 64M<br>- *base = pciexbar_reg & ((1 << 31)|(1 << 30)|(1 << 29)|(1 << 28)|(1 << 27)|(1 << 26));<br>+ mask = ((1UL << 31)|(1 << 30)|(1 << 29)|(1 << 28)|(1 << 27));<br>+ mask |= (1 << 26);<br>+ *base = pciexbar_reg & mask;<br> *len = 64 * 1024 * 1024;<br> return 1;<br> }<br></pre><p>To view, visit <a href="https://review.coreboot.org/20447">change 20447</a>. To unsubscribe, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/20447"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: If2d34e4f05494c17bf9b9dec113b8f6863214e56 </div>
<div style="display:none"> Gerrit-Change-Number: 20447 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Ryan Salsamendi <rsalsamendi@hotmail.com> </div>