public inbox for linux-raid@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] Fix undefined behaviour during device synchronization
@ 2021-12-10  5:17 Li Jinlin
  2021-12-10  5:17 ` [PATCH v2 1/3] md: Fix undefined behaviour in is_mddev_idle Li Jinlin
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Li Jinlin @ 2021-12-10  5:17 UTC (permalink / raw)
  To: song, philipp.reisner, lars.ellenberg, axboe, hare, jack,
	ming.lei, tj, mcgrof, mcroce
  Cc: linux-raid, linux-block, linux-kernel, drbd-dev, linfeilong

md/drbd drivers use 'signed int' variable to track sync vs non-sync IO,
and judge whether sync IO needs to be throttled by signed comparison.
If the value of the variable is greater than INT_MAX or close to
INT_MAX, some undefined behavior may occur.

Fix by using 64bit signed integer type.

The v2 "md: Fix undefined behaviour in is_mddev_idle" patch
differences to v1:
- add ubsan info in message
- use 64bit signed integer type instead of long type;
- move sync_io variable form struct gendisk to struct md_rdev, and 
  modify md_sync_acct() and md_sync_acct_bio() to fit for this change.

Li Jinlin (3):
  md: Fix undefined behaviour in is_mddev_idle
  drdb: Fix undefined behaviour in drbd_rs_c_min_rate_throttle
  drdb: Remove useless variable in struct drbd_device

 drivers/block/drbd/drbd_bitmap.c   |  2 +-
 drivers/block/drbd/drbd_int.h      |  5 ++---
 drivers/block/drbd/drbd_main.c     |  3 +--
 drivers/block/drbd/drbd_receiver.c | 12 ++++++------
 drivers/block/drbd/drbd_state.c    |  1 -
 drivers/block/drbd/drbd_worker.c   |  5 ++---
 drivers/md/md.c                    |  6 +++---
 drivers/md/md.h                    | 13 +++++++++----
 drivers/md/raid1.c                 |  4 ++--
 drivers/md/raid10.c                | 24 ++++++++++++------------
 drivers/md/raid5.c                 |  4 ++--
 include/linux/genhd.h              |  1 -
 12 files changed, 40 insertions(+), 40 deletions(-)

-- 
2.27.0


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

end of thread, other threads:[~2021-12-10  8:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-10  5:17 [PATCH 0/3] Fix undefined behaviour during device synchronization Li Jinlin
2021-12-10  5:17 ` [PATCH v2 1/3] md: Fix undefined behaviour in is_mddev_idle Li Jinlin
2021-12-10  6:45   ` Hannes Reinecke
2021-12-10  7:17     ` Damien Le Moal
2021-12-10  8:46       ` Li Jinlin
2021-12-10  5:17 ` [PATCH 2/3] drdb: Fix undefined behaviour in drbd_rs_c_min_rate_throttle Li Jinlin
2021-12-10  5:17 ` [PATCH 3/3] drdb: Remove useless variable in struct drbd_device Li Jinlin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox