fix: handle not recognized state save area header version
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
parent
556ba1b7c4
commit
06bc53fa9d
|
@ -98,7 +98,7 @@ size_t SipKernel::getStateSaveAreaSize(Device *device) const {
|
|||
|
||||
auto numSlices = NEO::GfxCoreHelper::getHighestEnabledSlice(hwInfo);
|
||||
size_t stateSaveAreaSize = 0;
|
||||
if (hdr->versionHeader.version.major >= 3) {
|
||||
if (hdr->versionHeader.version.major == 3) {
|
||||
stateSaveAreaSize = numSlices *
|
||||
hdr->regHeaderV3.num_subslices_per_slice *
|
||||
hdr->regHeaderV3.num_eus_per_subslice *
|
||||
|
@ -107,7 +107,7 @@ size_t SipKernel::getStateSaveAreaSize(Device *device) const {
|
|||
hdr->versionHeader.size * 8 + hdr->regHeaderV3.state_area_offset;
|
||||
stateSaveAreaSize += hdr->regHeaderV3.fifo_size * sizeof(SIP::fifo_node);
|
||||
|
||||
} else {
|
||||
} else if (hdr->versionHeader.version.major < 3) {
|
||||
stateSaveAreaSize = numSlices *
|
||||
hdr->regHeader.num_subslices_per_slice *
|
||||
hdr->regHeader.num_eus_per_subslice *
|
||||
|
|
|
@ -407,6 +407,14 @@ TEST_F(StateSaveAreaSipTest, givenCorrectStateSaveAreaHeaderWhenGetStateSaveArea
|
|||
EXPECT_EQ(alignUp(fifoSize + stateSaveSize, MemoryConstants::pageSize), SipKernel::getSipKernel(*pDevice, nullptr).getStateSaveAreaSize(pDevice));
|
||||
}
|
||||
|
||||
TEST_F(StateSaveAreaSipTest, givenNotsupportedStateSaveAreaHeaderVersionWhenGetStateSaveAreaSizeCalledThenNoSizeIsReturned) {
|
||||
VariableBackup<bool> backupSipInitType(&MockSipData::useMockSip, true);
|
||||
MockSipData::mockSipKernel->mockStateSaveAreaHeader = MockSipData::createStateSaveAreaHeader(1);
|
||||
auto header = reinterpret_cast<SIP::StateSaveAreaHeader *>(MockSipData::mockSipKernel->mockStateSaveAreaHeader.data());
|
||||
header->versionHeader.version.major = 4u;
|
||||
EXPECT_EQ(0u, SipKernel::getSipKernel(*pDevice, nullptr).getStateSaveAreaSize(pDevice));
|
||||
}
|
||||
|
||||
TEST(DebugBindlessSip, givenDebuggerAndUseBindlessDebugSipWhenGettingSipTypeThenDebugBindlessTypeIsReturned) {
|
||||
DebugManagerStateRestore restorer;
|
||||
NEO::debugManager.flags.UseBindlessDebugSip.set(1);
|
||||
|
|
Loading…
Reference in New Issue