UPSTREAM: sis/sis966: don't store a 32bit value in a 16bit variable

That only makes deviceid == 0 (because shifting a 16bit value by 16
bits, well...)

BUG=None
BRANCH=None
TEST=None

Change-Id: Ia61a613b2152a2a2f9c24428181c6a42ab9c0d90
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Found-by: Coverity Scan #1229558
Reviewed-on: https://review.coreboot.org/15960
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/366280
Commit-Ready: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
This commit is contained in:
Patrick Georgi 2016-07-29 18:19:46 +02:00 committed by chrome-bot
parent 7e953ab96a
commit 585f7292f6

View file

@ -71,9 +71,9 @@ void sis966_enable(device_t dev)
int i;
if(dev->device==0x0000) {
vendorid = pci_read_config32(dev, PCI_VENDOR_ID);
deviceid = (vendorid>>16) & 0xffff;
// vendorid &= 0xffff;
reg = pci_read_config32(dev, PCI_VENDOR_ID);
deviceid = (reg >> 16) & 0xffff;
vendorid = reg & 0xffff;
} else {
// vendorid = dev->vendor;
deviceid = dev->device;