• Anton Blanchard's avatar
    powerpc: Fix bogus it_blocksize in VIO iommu code · 7aa241fd
    Anton Blanchard authored
    When looking at some issues with the virtual ethernet driver I noticed
    that TCE allocation was following a very strange pattern:
    
    address 00e9000 length 2048
    address 0409000 length 2048 <-----
    address 0429000 length 2048
    address 0449000 length 2048
    address 0469000 length 2048
    address 0489000 length 2048
    address 04a9000 length 2048
    address 04c9000 length 2048
    address 04e9000 length 2048
    address 4009000 length 2048 <-----
    address 4029000 length 2048
    
    Huge unexplained gaps in what should be an empty TCE table. It turns out
    it_blocksize, the amount we want to align the next allocation to, was
    c0000000fe903b20. Completely bogus.
    
    Initialise it to something reasonable in the VIO IOMMU code, and use kzalloc
    everywhere to protect against this when we next add a non compulsary
    field to iommu code and forget to initialise it.
    Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    7aa241fd
iommu.c 34 KB