A few minor fixes to issues identified by the clang static analyzer.
// try adding the node by walking dtb tree to proper insertion point
offset = fdt_path_offset((void*)fdt_buf_w_space, root_path);
offset = fdt_add_subnode((void*)fdt_buf_w_space, offset, node_name);
- offset = fdt_path_offset((void*)fdt_buf_w_space, full_path_node_name);
+ // if we successfully add the subnode, get the offset
+ if (offset >= 0)
+ offset = fdt_path_offset((void*)fdt_buf_w_space, full_path_node_name);
+
if (offset < 0) {
warn("Error finding or adding \"chosen\" subnode to flattened "
"device tree, errno: %d\n", offset);
numCaches = floorLog2(size) - 17;
if (numCaches >0){
cacheBoundaries = new FALRUBlk *[numCaches];
- cacheMask = (1 << numCaches) - 1;
+ cacheMask = (ULL(1) << numCaches) - 1;
} else {
cacheMask = 0;
}
rank = addr % ranksPerChannel;
addr = addr / ranksPerChannel;
- // lastly, get the row bits
+ // lastly, get the row bits, no need to remove them from addr
row = addr % rowsPerBank;
- addr = addr / rowsPerBank;
} else if (addrMapping == Enums::RoRaBaCoCh) {
// take out the lower-order column bits
addr = addr / columnsPerStripe;
rank = addr % ranksPerChannel;
addr = addr / ranksPerChannel;
- // lastly, get the row bits
+ // lastly, get the row bits, no need to remove them from addr
row = addr % rowsPerBank;
- addr = addr / rowsPerBank;
} else if (addrMapping == Enums::RoCoRaBaCh) {
// optimise for closed page mode and utilise maximum
// parallelism of the DRAM (at the cost of power)
// next, the higher-order column bites
addr = addr / (columnsPerRowBuffer / columnsPerStripe);
- // lastly, get the row bits
+ // lastly, get the row bits, no need to remove them from addr
row = addr % rowsPerBank;
- addr = addr / rowsPerBank;
} else
panic("Unknown address mapping policy chosen!");
private:
GarnetNetwork_d *m_net_ptr;
- const NodeID m_id;
+ const NodeID M5_CLASS_VAR_USED m_id;
const int m_virtual_networks, m_vc_per_vnet, m_num_vcs;
std::vector<OutVcState_d *> m_out_vc_state;
std::vector<int> m_vc_allocator;
}
// Restore eventq head
- eventq_head = eventq->replaceHead(eventq_head);
+ eventq->replaceHead(eventq_head);
// Restore curTick and Ruby System's clock
setCurTick(curtick_original);
resetClock();
StackDistCalc::calcStackDistAndUpdate(const Addr r_address, bool addNewNode)
{
Node* newLeafNode;
- // Return index if the address was already present in stack
- uint64_t r_index = index;
auto ai = aiMap.lower_bound(r_address);
// key already exists
// save the index counter value when this address was
// encountered before and update it to the current index value
- r_index = ai->second;
+ uint64_t r_index = ai->second;
if (addNewNode) {
// Update aiMap aiMap(Address) = current index
std::pair< uint64_t, bool>
StackDistCalc::calcStackDist(const Addr r_address, bool mark)
{
- // Return index if the address was already present in stack
- uint64_t r_index = index;
// Default value of isMarked flag for each node.
bool _mark = false;
// key already exists
// save the index counter value when this address was
// encountered before
- r_index = ai->second;
+ uint64_t r_index = ai->second;
// Get the value of mark flag if previously marked
_mark = tree[0][r_index]->isMarked;
StackDistCalc::printStack(int n) const
{
Node* node;
- uint64_t r_index;
int count = 0;
DPRINTF(StackDist, "Printing last %d entries in tree\n", n);
for (auto it = tree[0].rbegin(); (count < n) && (it != tree[0].rend());
++it, ++count) {
node = it->second;
- r_index = node->nodeIndex;
+ uint64_t r_index = node->nodeIndex;
// Lookup aiMap using the index returned by the leaf iterator
for (auto ai = aiMap.rbegin(); ai != aiMap.rend(); ++ai) {