vio_cmo 98 arch/powerpc/platforms/pseries/vio.c } vio_cmo; vio_cmo 149 arch/powerpc/platforms/pseries/vio.c spin_lock_irqsave(&vio_cmo.lock, flags); vio_cmo 156 arch/powerpc/platforms/pseries/vio.c if (vio_cmo.spare >= VIO_CMO_MIN_ENT) vio_cmo 157 arch/powerpc/platforms/pseries/vio.c excess_free = vio_cmo.excess.free; vio_cmo 161 arch/powerpc/platforms/pseries/vio.c vio_cmo.curr += size; vio_cmo 162 arch/powerpc/platforms/pseries/vio.c if (vio_cmo.curr > vio_cmo.high) vio_cmo 163 arch/powerpc/platforms/pseries/vio.c vio_cmo.high = vio_cmo.curr; vio_cmo 166 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.free -= size; vio_cmo 170 arch/powerpc/platforms/pseries/vio.c spin_unlock_irqrestore(&vio_cmo.lock, flags); vio_cmo 195 arch/powerpc/platforms/pseries/vio.c spin_lock_irqsave(&vio_cmo.lock, flags); vio_cmo 196 arch/powerpc/platforms/pseries/vio.c vio_cmo.curr -= size; vio_cmo 209 arch/powerpc/platforms/pseries/vio.c spare_needed = VIO_CMO_MIN_ENT - vio_cmo.spare; vio_cmo 217 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.size -= tmp; vio_cmo 218 arch/powerpc/platforms/pseries/vio.c vio_cmo.reserve.size += tmp; vio_cmo 219 arch/powerpc/platforms/pseries/vio.c vio_cmo.spare += tmp; vio_cmo 234 arch/powerpc/platforms/pseries/vio.c vio_cmo.spare += tmp; vio_cmo 246 arch/powerpc/platforms/pseries/vio.c if (excess_freed && (vio_cmo.desired > vio_cmo.reserve.size)) { vio_cmo 247 arch/powerpc/platforms/pseries/vio.c tmp = min(excess_freed, (vio_cmo.desired - vio_cmo.reserve.size)); vio_cmo 249 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.size -= tmp; vio_cmo 250 arch/powerpc/platforms/pseries/vio.c vio_cmo.reserve.size += tmp; vio_cmo 257 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.free += excess_freed; vio_cmo 260 arch/powerpc/platforms/pseries/vio.c schedule_delayed_work(&vio_cmo.balance_q, VIO_CMO_BALANCE_DELAY); vio_cmo 261 arch/powerpc/platforms/pseries/vio.c spin_unlock_irqrestore(&vio_cmo.lock, flags); vio_cmo 282 arch/powerpc/platforms/pseries/vio.c spin_lock_irqsave(&vio_cmo.lock, flags); vio_cmo 285 arch/powerpc/platforms/pseries/vio.c if (new_entitlement > vio_cmo.entitled) { vio_cmo 286 arch/powerpc/platforms/pseries/vio.c delta = new_entitlement - vio_cmo.entitled; vio_cmo 289 arch/powerpc/platforms/pseries/vio.c if (vio_cmo.spare < VIO_CMO_MIN_ENT) { vio_cmo 290 arch/powerpc/platforms/pseries/vio.c tmp = min(delta, (VIO_CMO_MIN_ENT - vio_cmo.spare)); vio_cmo 291 arch/powerpc/platforms/pseries/vio.c vio_cmo.spare += tmp; vio_cmo 292 arch/powerpc/platforms/pseries/vio.c vio_cmo.reserve.size += tmp; vio_cmo 297 arch/powerpc/platforms/pseries/vio.c vio_cmo.entitled += delta; vio_cmo 298 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.size += delta; vio_cmo 299 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.free += delta; vio_cmo 305 arch/powerpc/platforms/pseries/vio.c delta = vio_cmo.entitled - new_entitlement; vio_cmo 306 arch/powerpc/platforms/pseries/vio.c avail = vio_cmo.excess.free; vio_cmo 312 arch/powerpc/platforms/pseries/vio.c list_for_each_entry(dev_ent, &vio_cmo.device_list, list) { vio_cmo 325 arch/powerpc/platforms/pseries/vio.c vio_cmo.entitled -= delta; vio_cmo 328 arch/powerpc/platforms/pseries/vio.c tmp = min(vio_cmo.excess.free, delta); vio_cmo 329 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.size -= tmp; vio_cmo 330 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.free -= tmp; vio_cmo 337 arch/powerpc/platforms/pseries/vio.c list_for_each_entry(dev_ent, &vio_cmo.device_list, list) { vio_cmo 352 arch/powerpc/platforms/pseries/vio.c spin_unlock_irqrestore(&vio_cmo.lock, flags); vio_cmo 357 arch/powerpc/platforms/pseries/vio.c schedule_delayed_work(&vio_cmo.balance_q, 0); vio_cmo 358 arch/powerpc/platforms/pseries/vio.c spin_unlock_irqrestore(&vio_cmo.lock, flags); vio_cmo 385 arch/powerpc/platforms/pseries/vio.c struct vio_cmo *cmo; vio_cmo 392 arch/powerpc/platforms/pseries/vio.c cmo = container_of(work, struct vio_cmo, balance_q.work); vio_cmo 394 arch/powerpc/platforms/pseries/vio.c spin_lock_irqsave(&vio_cmo.lock, flags); vio_cmo 408 arch/powerpc/platforms/pseries/vio.c list_for_each_entry(dev_ent, &vio_cmo.device_list, list) { vio_cmo 424 arch/powerpc/platforms/pseries/vio.c list_for_each_entry(dev_ent, &vio_cmo.device_list, list) { vio_cmo 462 arch/powerpc/platforms/pseries/vio.c list_for_each_entry(dev_ent, &vio_cmo.device_list, list) { vio_cmo 476 arch/powerpc/platforms/pseries/vio.c spin_unlock_irqrestore(&vio_cmo.lock, flags); vio_cmo 631 arch/powerpc/platforms/pseries/vio.c spin_lock_irqsave(&vio_cmo.lock, flags); vio_cmo 640 arch/powerpc/platforms/pseries/vio.c list_for_each_entry(dev_ent, &vio_cmo.device_list, list) vio_cmo 646 arch/powerpc/platforms/pseries/vio.c spin_unlock_irqrestore(&vio_cmo.lock, flags); vio_cmo 653 arch/powerpc/platforms/pseries/vio.c vio_cmo.desired += desired - viodev->cmo.desired; vio_cmo 657 arch/powerpc/platforms/pseries/vio.c vio_cmo.desired -= viodev->cmo.desired - desired; vio_cmo 664 arch/powerpc/platforms/pseries/vio.c vio_cmo.reserve.size -= viodev->cmo.entitled - desired; vio_cmo 665 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.size += viodev->cmo.entitled - desired; vio_cmo 672 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.free += viodev->cmo.entitled - vio_cmo 677 arch/powerpc/platforms/pseries/vio.c schedule_delayed_work(&vio_cmo.balance_q, 0); vio_cmo 678 arch/powerpc/platforms/pseries/vio.c spin_unlock_irqrestore(&vio_cmo.lock, flags); vio_cmo 744 arch/powerpc/platforms/pseries/vio.c spin_lock_irqsave(&vio_cmo.lock, flags); vio_cmo 745 arch/powerpc/platforms/pseries/vio.c list_add(&dev_ent->list, &vio_cmo.device_list); vio_cmo 749 arch/powerpc/platforms/pseries/vio.c spin_lock_irqsave(&vio_cmo.lock, flags); vio_cmo 758 arch/powerpc/platforms/pseries/vio.c if (vio_cmo.min == ((vio_cmo_num_OF_devs() + 1) * vio_cmo 762 arch/powerpc/platforms/pseries/vio.c vio_cmo.desired += (viodev->cmo.desired - vio_cmo 767 arch/powerpc/platforms/pseries/vio.c tmp = vio_cmo.spare + vio_cmo.excess.free; vio_cmo 772 arch/powerpc/platforms/pseries/vio.c size, (vio_cmo.spare + tmp)); vio_cmo 773 arch/powerpc/platforms/pseries/vio.c spin_unlock_irqrestore(&vio_cmo.lock, flags); vio_cmo 778 arch/powerpc/platforms/pseries/vio.c tmp = min(size, vio_cmo.excess.free); vio_cmo 779 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.free -= tmp; vio_cmo 780 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.size -= tmp; vio_cmo 781 arch/powerpc/platforms/pseries/vio.c vio_cmo.reserve.size += tmp; vio_cmo 784 arch/powerpc/platforms/pseries/vio.c vio_cmo.spare -= size - tmp; vio_cmo 787 arch/powerpc/platforms/pseries/vio.c vio_cmo.min += size; vio_cmo 788 arch/powerpc/platforms/pseries/vio.c vio_cmo.desired += viodev->cmo.desired; vio_cmo 790 arch/powerpc/platforms/pseries/vio.c spin_unlock_irqrestore(&vio_cmo.lock, flags); vio_cmo 810 arch/powerpc/platforms/pseries/vio.c spin_lock_irqsave(&vio_cmo.lock, flags); vio_cmo 822 arch/powerpc/platforms/pseries/vio.c list_for_each_entry(dev_ent, &vio_cmo.device_list, list) vio_cmo 840 arch/powerpc/platforms/pseries/vio.c vio_cmo.desired -= (viodev->cmo.desired - VIO_CMO_MIN_ENT); vio_cmo 850 arch/powerpc/platforms/pseries/vio.c if (viodev->cmo.entitled && (vio_cmo.spare < VIO_CMO_MIN_ENT)) { vio_cmo 852 arch/powerpc/platforms/pseries/vio.c vio_cmo.spare)); vio_cmo 853 arch/powerpc/platforms/pseries/vio.c vio_cmo.spare += tmp; vio_cmo 858 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.size += viodev->cmo.entitled; vio_cmo 859 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.free += viodev->cmo.entitled; vio_cmo 860 arch/powerpc/platforms/pseries/vio.c vio_cmo.reserve.size -= viodev->cmo.entitled; vio_cmo 872 arch/powerpc/platforms/pseries/vio.c spin_unlock_irqrestore(&vio_cmo.lock, flags); vio_cmo 892 arch/powerpc/platforms/pseries/vio.c memset(&vio_cmo, 0, sizeof(struct vio_cmo)); vio_cmo 893 arch/powerpc/platforms/pseries/vio.c spin_lock_init(&vio_cmo.lock); vio_cmo 894 arch/powerpc/platforms/pseries/vio.c INIT_LIST_HEAD(&vio_cmo.device_list); vio_cmo 895 arch/powerpc/platforms/pseries/vio.c INIT_DELAYED_WORK(&vio_cmo.balance_q, vio_cmo_balance); vio_cmo 907 arch/powerpc/platforms/pseries/vio.c vio_cmo.entitled = 0; vio_cmo 909 arch/powerpc/platforms/pseries/vio.c vio_cmo.entitled = mpp_data.entitled_mem; vio_cmo 913 arch/powerpc/platforms/pseries/vio.c vio_cmo.spare = VIO_CMO_MIN_ENT; vio_cmo 914 arch/powerpc/platforms/pseries/vio.c vio_cmo.reserve.size = vio_cmo.spare; vio_cmo 915 arch/powerpc/platforms/pseries/vio.c vio_cmo.reserve.size += (vio_cmo_num_OF_devs() * vio_cmo 917 arch/powerpc/platforms/pseries/vio.c if (vio_cmo.reserve.size > vio_cmo.entitled) { vio_cmo 924 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.size = vio_cmo.entitled - vio_cmo.reserve.size; vio_cmo 925 arch/powerpc/platforms/pseries/vio.c vio_cmo.excess.free = vio_cmo.excess.size; vio_cmo 926 arch/powerpc/platforms/pseries/vio.c vio_cmo.min = vio_cmo.reserve.size; vio_cmo 927 arch/powerpc/platforms/pseries/vio.c vio_cmo.desired = vio_cmo.reserve.size; vio_cmo 1005 arch/powerpc/platforms/pseries/vio.c return sprintf(buf, "%lu\n", vio_cmo.name); \ vio_cmo 1014 arch/powerpc/platforms/pseries/vio.c return sprintf(buf, "%lu\n", vio_cmo.name.var); \ vio_cmo 1029 arch/powerpc/platforms/pseries/vio.c return sprintf(buf, "%lu\n", vio_cmo.high); vio_cmo 1037 arch/powerpc/platforms/pseries/vio.c spin_lock_irqsave(&vio_cmo.lock, flags); vio_cmo 1038 arch/powerpc/platforms/pseries/vio.c vio_cmo.high = vio_cmo.curr; vio_cmo 1039 arch/powerpc/platforms/pseries/vio.c spin_unlock_irqrestore(&vio_cmo.lock, flags);