Fix segfault in sinic
authorNathan Binkert <binkertn@umich.edu>
Tue, 25 Apr 2006 14:20:37 +0000 (10:20 -0400)
committerNathan Binkert <binkertn@umich.edu>
Tue, 25 Apr 2006 14:20:37 +0000 (10:20 -0400)
dev/sinic.cc:
    check that there is a fault before testing the fault type

--HG--
extra : convert_revision : 0cc95ba660655766b779e77d912dbc685cd476a8

dev/sinic.cc

index 363994919c8c95da50393ec05402ca90505c9b7c..2ce67acca1dda08db1ce3fa30d0e6534db005389 100644 (file)
@@ -363,7 +363,7 @@ Device::read(MemReqPtr &req, uint8_t *data)
     assert(config.command & PCI_CMD_MSE);
     Fault fault = readBar(req, data);
 
-    if (fault->isMachineCheckFault()) {
+    if (fault && fault->isMachineCheckFault()) {
         panic("address does not map to a BAR pa=%#x va=%#x size=%d",
               req->paddr, req->vaddr, req->size);
 
@@ -459,7 +459,7 @@ Device::write(MemReqPtr &req, const uint8_t *data)
     assert(config.command & PCI_CMD_MSE);
     Fault fault = writeBar(req, data);
 
-    if (fault->isMachineCheckFault()) {
+    if (fault && fault->isMachineCheckFault()) {
         panic("address does not map to a BAR pa=%#x va=%#x size=%d",
               req->paddr, req->vaddr, req->size);