xen: branch for v5.5-rc2
-----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQRTLbB6QfY48x44uB6AXGG7T9hjvgUCXfXMXQAKCRCAXGG7T9hj vvXEAP9Y4gNvKAH+6Puujjtt6QPsdj2StA8JEgo7ZuogCNtvdQD7BAbbfk4cKl7w 7rj8AL8rXXxBJa2rPsQm8B7ZOz6VaQg= =rgcD -----END PGP SIGNATURE----- Merge tag 'for-linus-5.5b-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen fixes from Juergen Gross: "Two fixes: one for a resource accounting bug in some configurations and a fix for another patch which went into rc1" * tag 'for-linus-5.5b-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen/balloon: fix ballooned page accounting without hotplug enabled xen-blkback: prevent premature module unload
This commit is contained in:
commit
b01d7cb41f
@ -171,6 +171,15 @@ static struct xen_blkif *xen_blkif_alloc(domid_t domid)
|
|||||||
blkif->domid = domid;
|
blkif->domid = domid;
|
||||||
atomic_set(&blkif->refcnt, 1);
|
atomic_set(&blkif->refcnt, 1);
|
||||||
init_completion(&blkif->drain_complete);
|
init_completion(&blkif->drain_complete);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Because freeing back to the cache may be deferred, it is not
|
||||||
|
* safe to unload the module (and hence destroy the cache) until
|
||||||
|
* this has completed. To prevent premature unloading, take an
|
||||||
|
* extra module reference here and release only when the object
|
||||||
|
* has been freed back to the cache.
|
||||||
|
*/
|
||||||
|
__module_get(THIS_MODULE);
|
||||||
INIT_WORK(&blkif->free_work, xen_blkif_deferred_free);
|
INIT_WORK(&blkif->free_work, xen_blkif_deferred_free);
|
||||||
|
|
||||||
return blkif;
|
return blkif;
|
||||||
@ -320,6 +329,7 @@ static void xen_blkif_free(struct xen_blkif *blkif)
|
|||||||
|
|
||||||
/* Make sure everything is drained before shutting down */
|
/* Make sure everything is drained before shutting down */
|
||||||
kmem_cache_free(xen_blkif_cachep, blkif);
|
kmem_cache_free(xen_blkif_cachep, blkif);
|
||||||
|
module_put(THIS_MODULE);
|
||||||
}
|
}
|
||||||
|
|
||||||
int __init xen_blkif_interface_init(void)
|
int __init xen_blkif_interface_init(void)
|
||||||
|
@ -394,7 +394,8 @@ static struct notifier_block xen_memory_nb = {
|
|||||||
#else
|
#else
|
||||||
static enum bp_state reserve_additional_memory(void)
|
static enum bp_state reserve_additional_memory(void)
|
||||||
{
|
{
|
||||||
balloon_stats.target_pages = balloon_stats.current_pages;
|
balloon_stats.target_pages = balloon_stats.current_pages +
|
||||||
|
balloon_stats.target_unpopulated;
|
||||||
return BP_ECANCELED;
|
return BP_ECANCELED;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_XEN_BALLOON_MEMORY_HOTPLUG */
|
#endif /* CONFIG_XEN_BALLOON_MEMORY_HOTPLUG */
|
||||||
|
Loading…
Reference in New Issue
Block a user