Download raw body.
de-macro uvm SWAP_KEY_*
OK kn
07.11.2024 09:25, Jonathan Gray пишет:
> Index: sys/uvm/uvm_swap_encrypt.h
> ===================================================================
> RCS file: /cvs/src/sys/uvm/uvm_swap_encrypt.h,v
> diff -u -p -r1.13 uvm_swap_encrypt.h
> --- sys/uvm/uvm_swap_encrypt.h 7 Nov 2024 06:04:11 -0000 1.13
> +++ sys/uvm/uvm_swap_encrypt.h 7 Nov 2024 06:14:38 -0000
> @@ -60,22 +60,24 @@ void swap_decrypt(struct swap_key *,cadd
> void swap_key_cleanup(struct swap_key *);
> void swap_key_prepare(struct swap_key *, int);
>
> -#define SWAP_KEY_GET(s,x) do { \
> - if ((x)->refcount == 0) { \
> - swap_key_create(x); \
> - } \
> - (x)->refcount++; \
> - } while(0);
> -
> -#define SWAP_KEY_PUT(s,x) do { \
> - (x)->refcount--; \
> - if ((x)->refcount == 0) { \
> - swap_key_delete(x); \
> - } \
> - } while(0);
> -
> void swap_key_create(struct swap_key *);
> void swap_key_delete(struct swap_key *);
> +
> +static inline void
> +swap_key_get(struct swap_key *key)
> +{
> + if (key->refcount == 0)
> + swap_key_create(key);
> + key->refcount++;
> +}
> +
> +static inline void
> +swap_key_put(struct swap_key *key)
> +{
> + key->refcount--;
> + if (key->refcount == 0)
> + swap_key_delete(key);
> +}
>
> extern int uvm_doswapencrypt; /* swapencrypt enabled/disabled */
> extern int swap_encrypt_initialized;
> Index: sys/uvm/uvm_swap.c
> ===================================================================
> RCS file: /cvs/src/sys/uvm/uvm_swap.c,v
> diff -u -p -r1.172 uvm_swap.c
> --- sys/uvm/uvm_swap.c 30 Oct 2024 06:16:27 -0000 1.172
> +++ sys/uvm/uvm_swap.c 7 Nov 2024 06:14:38 -0000
> @@ -1624,7 +1624,7 @@ uvm_swap_free(int startslot, int nslots)
>
> key = SWD_KEY(sdp, startslot + i);
> if (key->refcount != 0)
> - SWAP_KEY_PUT(sdp, key);
> + swap_key_put(key);
> }
>
> /* Mark range as not decrypt */
> @@ -1813,7 +1813,7 @@ uvm_swap_io(struct vm_page **pps, int st
>
> if (encrypt) {
> key = SWD_KEY(sdp, startslot + i);
> - SWAP_KEY_GET(sdp, key); /* add reference */
> + swap_key_get(key); /* add reference */
>
> swap_encrypt(key, src, dst, block, PAGE_SIZE);
> block += btodb(PAGE_SIZE);
>
de-macro uvm SWAP_KEY_*