linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] v3 block subsystem refcounter conversions
@ 2017-06-27 11:39 Elena Reshetova
  2017-06-27 11:39 ` [PATCH 1/5] block: convert bio.__bi_cnt from atomic_t to refcount_t Elena Reshetova
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Elena Reshetova @ 2017-06-27 11:39 UTC (permalink / raw)
  To: axboe
  Cc: james.bottomley, linux-kernel, linux-block, linux-scsi,
	linux-btrfs, peterz, gregkh, keescook, fujita.tomonori, mingo,
	clm, jbacik, dsterba, Elena Reshetova

Changes in v3:
No changes in patches apart from trivial rebases, but now by
default refcount_t = atomic_t and uses all atomic standard operations
unless CONFIG_REFCOUNT_FULL is enabled. This is a compromize for the
systems that are critical on performance and cannot accept even
slight delay on the refcounter operations.

Changes in v2:
Not needed WARNs are removed since refcount_t warns by itself.
BUG_ONs are left as it is, since refcount_t doesn't bug by default.

This series, for block subsystem, replaces atomic_t reference
counters with the new refcount_t type and API (see include/linux/refcount.h).
By doing this we prevent intentional or accidental
underflows or overflows that can lead to use-after-free vulnerabilities.

Elena Reshetova (5):
  block: convert bio.__bi_cnt from atomic_t to refcount_t
  block: convert blk_queue_tag.refcnt from atomic_t to refcount_t
  block: convert blkcg_gq.refcnt from atomic_t to refcount_t
  block: convert io_context.active_ref from atomic_t to refcount_t
  block: convert bsg_device.ref_count from atomic_t to refcount_t

 block/bfq-iosched.c        | 2 +-
 block/bio.c                | 6 +++---
 block/blk-cgroup.c         | 2 +-
 block/blk-ioc.c            | 4 ++--
 block/blk-tag.c            | 8 ++++----
 block/bsg.c                | 9 +++++----
 block/cfq-iosched.c        | 4 ++--
 fs/btrfs/volumes.c         | 2 +-
 include/linux/bio.h        | 4 ++--
 include/linux/blk-cgroup.h | 9 ++++-----
 include/linux/blk_types.h  | 3 ++-
 include/linux/blkdev.h     | 3 ++-
 include/linux/iocontext.h  | 6 +++---
 13 files changed, 32 insertions(+), 30 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 13+ messages in thread
* [PATCH 0/5] v2: block subsystem refcounter conversions
@ 2017-04-20 11:27 Elena Reshetova
  2017-04-20 11:27 ` [PATCH 1/5] block: convert bio.__bi_cnt from atomic_t to refcount_t Elena Reshetova
  0 siblings, 1 reply; 13+ messages in thread
From: Elena Reshetova @ 2017-04-20 11:27 UTC (permalink / raw)
  To: axboe
  Cc: james.bottomley, linux-kernel, linux-block, linux-scsi,
	linux-btrfs, peterz, gregkh, fujita.tomonori, mingo, clm, jbacik,
	dsterba, Elena Reshetova

changes in v2:
Not needed WARNs are removed since refcount_t warns by itself.
BUG_ONs are left as it is, since refcount_t doesn't bug by default.

This series, for block subsystem, replaces atomic_t reference
counters with the new refcount_t type and API (see include/linux/refcount.h).
By doing this we prevent intentional or accidental
underflows or overflows that can lead to use-after-free vulnerabilities.


Elena Reshetova (5):
  block: convert bio.__bi_cnt from atomic_t to refcount_t
  block: convert blk_queue_tag.refcnt from atomic_t to refcount_t
  block: convert blkcg_gq.refcnt from atomic_t to refcount_t
  block: convert io_context.active_ref from atomic_t to refcount_t
  block: convert bsg_device.ref_count from atomic_t to refcount_t

 block/bio.c                | 6 +++---
 block/blk-cgroup.c         | 2 +-
 block/blk-ioc.c            | 4 ++--
 block/blk-tag.c            | 8 ++++----
 block/bsg.c                | 9 +++++----
 block/cfq-iosched.c        | 4 ++--
 fs/btrfs/volumes.c         | 2 +-
 include/linux/bio.h        | 4 ++--
 include/linux/blk-cgroup.h | 9 ++++-----
 include/linux/blk_types.h  | 3 ++-
 include/linux/blkdev.h     | 3 ++-
 include/linux/iocontext.h  | 6 +++---
 12 files changed, 31 insertions(+), 29 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 13+ messages in thread
* [PATCH 0/5] block subsystem refcounter conversions
@ 2017-02-20 11:16 Elena Reshetova
  2017-02-20 11:16 ` [PATCH 1/5] block: convert bio.__bi_cnt from atomic_t to refcount_t Elena Reshetova
  0 siblings, 1 reply; 13+ messages in thread
From: Elena Reshetova @ 2017-02-20 11:16 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-block, linux-scsi, linux-btrfs, peterz, gregkh, axboe,
	fujita.tomonori, mingo, clm, jbacik, dsterba, Elena Reshetova

Now when new refcount_t type and API are finally merged
(see include/linux/refcount.h), the following
patches convert various refcounters in the block susystem from atomic_t
to refcount_t. By doing this we prevent intentional or accidental
underflows or overflows that can led to use-after-free vulnerabilities.

The below patches are fully independent and can be cherry-picked separately.
Since we convert all kernel subsystems in the same fashion, resulting
in about 300 patches, we have to group them for sending at least in some
fashion to be manageable. Please excuse the long cc list.

Elena Reshetova (5):
  block: convert bio.__bi_cnt from atomic_t to refcount_t
  block: convert blk_queue_tag.refcnt from atomic_t to refcount_t
  block: convert blkcg_gq.refcnt from atomic_t to refcount_t
  block: convert io_context.active_ref from atomic_t to refcount_t
  block: convert bsg_device.ref_count from atomic_t to refcount_t

 block/bio.c                |  6 +++---
 block/blk-cgroup.c         |  2 +-
 block/blk-ioc.c            |  4 ++--
 block/blk-tag.c            |  8 ++++----
 block/bsg.c                |  9 +++++----
 block/cfq-iosched.c        |  4 ++--
 fs/btrfs/volumes.c         |  2 +-
 include/linux/bio.h        |  4 ++--
 include/linux/blk-cgroup.h | 11 ++++++-----
 include/linux/blk_types.h  |  3 ++-
 include/linux/blkdev.h     |  3 ++-
 include/linux/iocontext.h  |  7 ++++---
 12 files changed, 34 insertions(+), 29 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2017-06-29  7:38 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-27 11:39 [PATCH 0/5] v3 block subsystem refcounter conversions Elena Reshetova
2017-06-27 11:39 ` [PATCH 1/5] block: convert bio.__bi_cnt from atomic_t to refcount_t Elena Reshetova
2017-06-27 11:39 ` [PATCH 2/5] block: convert blk_queue_tag.refcnt " Elena Reshetova
2017-06-27 11:39 ` [PATCH 3/5] block: convert blkcg_gq.refcnt " Elena Reshetova
2017-06-27 11:39 ` [PATCH 4/5] block: convert io_context.active_ref " Elena Reshetova
2017-06-27 11:40 ` [PATCH 5/5] block: convert bsg_device.ref_count " Elena Reshetova
2017-06-27 13:26 ` [PATCH 0/5] v3 block subsystem refcounter conversions Jens Axboe
2017-06-27 22:13   ` Kees Cook
2017-06-28 11:58     ` Reshetova, Elena
2017-06-28 12:51       ` Jens Axboe
2017-06-29  7:38         ` Reshetova, Elena
  -- strict thread matches above, loose matches on Subject: below --
2017-04-20 11:27 [PATCH 0/5] v2: " Elena Reshetova
2017-04-20 11:27 ` [PATCH 1/5] block: convert bio.__bi_cnt from atomic_t to refcount_t Elena Reshetova
2017-02-20 11:16 [PATCH 0/5] block subsystem refcounter conversions Elena Reshetova
2017-02-20 11:16 ` [PATCH 1/5] block: convert bio.__bi_cnt from atomic_t to refcount_t Elena Reshetova

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).