2c2
< * Copyright (c) 2013 ARM Limited
---
> * Copyright (c) 2013-2015 ARM Limited
57c57,60
< Addr line_addr = cpkt->getAddr() & ~(linesize - 1);
---
> // Ultimately we should check if the packet came from an
> // allocating source, not just if the port is snooping
> bool allocate = !cpkt->req->isUncacheable() && slave_port.isSnooping();
> Addr line_addr = cpkt->getBlockAddr(linesize);
60a64,70
>
> // If the snoop filter has no entry, and we should not allocate,
> // do not create a new snoop filter entry, simply return a NULL
> // portlist.
> if (!is_hit && !allocate)
> return snoopDown(lookupLatency);
>
77c87
< if (!cpkt->req->isUncacheable() && cpkt->needsResponse()) {
---
> if (allocate && cpkt->needsResponse()) {
107c117,120
< if (cpkt->req->isUncacheable())
---
> // Ultimately we should check if the packet came from an
> // allocating source, not just if the port is snooping
> bool allocate = !cpkt->req->isUncacheable() && slave_port.isSnooping();
> if (!allocate)
110c123
< Addr line_addr = cpkt->getAddr() & ~(linesize - 1);
---
> Addr line_addr = cpkt->getBlockAddr(linesize);
159c172
< Addr line_addr = cpkt->getAddr() & ~(linesize - 1);
---
> Addr line_addr = cpkt->getBlockAddr(linesize);
210c223,226
< if (cpkt->req->isUncacheable())
---
> // Ultimately we should check if the packet came from an
> // allocating source, not just if the port is snooping
> bool allocate = !cpkt->req->isUncacheable() && req_port.isSnooping();
> if (!allocate)
213c229
< Addr line_addr = cpkt->getAddr() & ~(linesize - 1);
---
> Addr line_addr = cpkt->getBlockAddr(linesize);
257c273
< Addr line_addr = cpkt->getAddr() & ~(linesize - 1);
---
> Addr line_addr = cpkt->getBlockAddr(linesize);
287c303,306
< if (cpkt->req->isUncacheable())
---
> // Ultimately we should check if the packet came from an
> // allocating source, not just if the port is snooping
> bool allocate = !cpkt->req->isUncacheable() && slave_port.isSnooping();
> if (!allocate)
290c309
< Addr line_addr = cpkt->getAddr() & ~(linesize - 1);
---
> Addr line_addr = cpkt->getBlockAddr(linesize);