Revision 8da3ff18 hw/iommu.c

b/hw/iommu.c
114 114
#define PAGE_MASK       (PAGE_SIZE - 1)
115 115

  
116 116
typedef struct IOMMUState {
117
    target_phys_addr_t addr;
118 117
    uint32_t regs[IOMMU_NREGS];
119 118
    target_phys_addr_t iostart;
120 119
    uint32_t version;
......
127 126
    target_phys_addr_t saddr;
128 127
    uint32_t ret;
129 128

  
130
    saddr = (addr - s->addr) >> 2;
129
    saddr = addr >> 2;
131 130
    switch (saddr) {
132 131
    default:
133 132
        ret = s->regs[saddr];
......
148 147
    IOMMUState *s = opaque;
149 148
    target_phys_addr_t saddr;
150 149

  
151
    saddr = (addr - s->addr) >> 2;
150
    saddr = addr >> 2;
152 151
    DPRINTF("write reg[%d] = %x\n", (int)saddr, val);
153 152
    switch (saddr) {
154 153
    case IOMMU_CTRL:
......
358 357
    if (!s)
359 358
        return NULL;
360 359

  
361
    s->addr = addr;
362 360
    s->version = version;
363 361
    s->irq = irq;
364 362

  

Also available in: Unified diff