mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
Revert "ANDROID: null_blk: Support configuring the maximum segment size"
This reverts commit 75266774b9.
It conflicts with the LTS merge revert and will be brought back after
that is properly merged.
Bug: 308663717
Bug: 319125789
Cc: Bart Van Assche <bvanassche@acm.org>
Cc: Juan Yescas <jyescas@google.com>
Change-Id: Ieb275cba965a604019aa51e174e52082959c8872
This commit is contained in:
committed by
Todd Kjos
parent
e684a924fa
commit
eb58741d26
@@ -157,10 +157,6 @@ static int g_max_sectors;
|
|||||||
module_param_named(max_sectors, g_max_sectors, int, 0444);
|
module_param_named(max_sectors, g_max_sectors, int, 0444);
|
||||||
MODULE_PARM_DESC(max_sectors, "Maximum size of a command (in 512B sectors)");
|
MODULE_PARM_DESC(max_sectors, "Maximum size of a command (in 512B sectors)");
|
||||||
|
|
||||||
static unsigned int g_max_segment_size = BLK_MAX_SEGMENT_SIZE;
|
|
||||||
module_param_named(max_segment_size, g_max_segment_size, int, 0444);
|
|
||||||
MODULE_PARM_DESC(max_segment_size, "Maximum size of a segment in bytes");
|
|
||||||
|
|
||||||
static unsigned int nr_devices = 1;
|
static unsigned int nr_devices = 1;
|
||||||
module_param(nr_devices, uint, 0444);
|
module_param(nr_devices, uint, 0444);
|
||||||
MODULE_PARM_DESC(nr_devices, "Number of devices to register");
|
MODULE_PARM_DESC(nr_devices, "Number of devices to register");
|
||||||
@@ -413,7 +409,6 @@ NULLB_DEVICE_ATTR(home_node, uint, NULL);
|
|||||||
NULLB_DEVICE_ATTR(queue_mode, uint, NULL);
|
NULLB_DEVICE_ATTR(queue_mode, uint, NULL);
|
||||||
NULLB_DEVICE_ATTR(blocksize, uint, NULL);
|
NULLB_DEVICE_ATTR(blocksize, uint, NULL);
|
||||||
NULLB_DEVICE_ATTR(max_sectors, uint, NULL);
|
NULLB_DEVICE_ATTR(max_sectors, uint, NULL);
|
||||||
NULLB_DEVICE_ATTR(max_segment_size, uint, NULL);
|
|
||||||
NULLB_DEVICE_ATTR(irqmode, uint, NULL);
|
NULLB_DEVICE_ATTR(irqmode, uint, NULL);
|
||||||
NULLB_DEVICE_ATTR(hw_queue_depth, uint, NULL);
|
NULLB_DEVICE_ATTR(hw_queue_depth, uint, NULL);
|
||||||
NULLB_DEVICE_ATTR(index, uint, NULL);
|
NULLB_DEVICE_ATTR(index, uint, NULL);
|
||||||
@@ -537,7 +532,6 @@ static struct configfs_attribute *nullb_device_attrs[] = {
|
|||||||
&nullb_device_attr_queue_mode,
|
&nullb_device_attr_queue_mode,
|
||||||
&nullb_device_attr_blocksize,
|
&nullb_device_attr_blocksize,
|
||||||
&nullb_device_attr_max_sectors,
|
&nullb_device_attr_max_sectors,
|
||||||
&nullb_device_attr_max_segment_size,
|
|
||||||
&nullb_device_attr_irqmode,
|
&nullb_device_attr_irqmode,
|
||||||
&nullb_device_attr_hw_queue_depth,
|
&nullb_device_attr_hw_queue_depth,
|
||||||
&nullb_device_attr_index,
|
&nullb_device_attr_index,
|
||||||
@@ -616,8 +610,7 @@ static ssize_t memb_group_features_show(struct config_item *item, char *page)
|
|||||||
return snprintf(page, PAGE_SIZE,
|
return snprintf(page, PAGE_SIZE,
|
||||||
"badblocks,blocking,blocksize,cache_size,"
|
"badblocks,blocking,blocksize,cache_size,"
|
||||||
"completion_nsec,discard,home_node,hw_queue_depth,"
|
"completion_nsec,discard,home_node,hw_queue_depth,"
|
||||||
"irqmode,max_sectors,max_segment_size,mbps,"
|
"irqmode,max_sectors,mbps,memory_backed,no_sched,"
|
||||||
"memory_backed,no_sched,"
|
|
||||||
"poll_queues,power,queue_mode,shared_tag_bitmap,size,"
|
"poll_queues,power,queue_mode,shared_tag_bitmap,size,"
|
||||||
"submit_queues,use_per_node_hctx,virt_boundary,zoned,"
|
"submit_queues,use_per_node_hctx,virt_boundary,zoned,"
|
||||||
"zone_capacity,zone_max_active,zone_max_open,"
|
"zone_capacity,zone_max_active,zone_max_open,"
|
||||||
@@ -680,7 +673,6 @@ static struct nullb_device *null_alloc_dev(void)
|
|||||||
dev->queue_mode = g_queue_mode;
|
dev->queue_mode = g_queue_mode;
|
||||||
dev->blocksize = g_bs;
|
dev->blocksize = g_bs;
|
||||||
dev->max_sectors = g_max_sectors;
|
dev->max_sectors = g_max_sectors;
|
||||||
dev->max_segment_size = g_max_segment_size;
|
|
||||||
dev->irqmode = g_irqmode;
|
dev->irqmode = g_irqmode;
|
||||||
dev->hw_queue_depth = g_hw_queue_depth;
|
dev->hw_queue_depth = g_hw_queue_depth;
|
||||||
dev->blocking = g_blocking;
|
dev->blocking = g_blocking;
|
||||||
@@ -1222,8 +1214,6 @@ static int null_transfer(struct nullb *nullb, struct page *page,
|
|||||||
unsigned int valid_len = len;
|
unsigned int valid_len = len;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
WARN_ONCE(len > dev->max_segment_size, "%u > %u\n", len,
|
|
||||||
dev->max_segment_size);
|
|
||||||
if (!is_write) {
|
if (!is_write) {
|
||||||
if (dev->zoned)
|
if (dev->zoned)
|
||||||
valid_len = null_zone_valid_read_len(nullb,
|
valid_len = null_zone_valid_read_len(nullb,
|
||||||
@@ -1259,8 +1249,7 @@ static int null_handle_rq(struct nullb_cmd *cmd)
|
|||||||
|
|
||||||
spin_lock_irq(&nullb->lock);
|
spin_lock_irq(&nullb->lock);
|
||||||
rq_for_each_segment(bvec, rq, iter) {
|
rq_for_each_segment(bvec, rq, iter) {
|
||||||
len = min(bvec.bv_len, nullb->dev->max_segment_size);
|
len = bvec.bv_len;
|
||||||
bvec.bv_len = len;
|
|
||||||
err = null_transfer(nullb, bvec.bv_page, len, bvec.bv_offset,
|
err = null_transfer(nullb, bvec.bv_page, len, bvec.bv_offset,
|
||||||
op_is_write(req_op(rq)), sector,
|
op_is_write(req_op(rq)), sector,
|
||||||
rq->cmd_flags & REQ_FUA);
|
rq->cmd_flags & REQ_FUA);
|
||||||
@@ -1287,8 +1276,7 @@ static int null_handle_bio(struct nullb_cmd *cmd)
|
|||||||
|
|
||||||
spin_lock_irq(&nullb->lock);
|
spin_lock_irq(&nullb->lock);
|
||||||
bio_for_each_segment(bvec, bio, iter) {
|
bio_for_each_segment(bvec, bio, iter) {
|
||||||
len = min(bvec.bv_len, nullb->dev->max_segment_size);
|
len = bvec.bv_len;
|
||||||
bvec.bv_len = len;
|
|
||||||
err = null_transfer(nullb, bvec.bv_page, len, bvec.bv_offset,
|
err = null_transfer(nullb, bvec.bv_page, len, bvec.bv_offset,
|
||||||
op_is_write(bio_op(bio)), sector,
|
op_is_write(bio_op(bio)), sector,
|
||||||
bio->bi_opf & REQ_FUA);
|
bio->bi_opf & REQ_FUA);
|
||||||
@@ -2131,7 +2119,6 @@ static int null_add_dev(struct nullb_device *dev)
|
|||||||
dev->max_sectors = min_t(unsigned int, dev->max_sectors,
|
dev->max_sectors = min_t(unsigned int, dev->max_sectors,
|
||||||
BLK_DEF_MAX_SECTORS);
|
BLK_DEF_MAX_SECTORS);
|
||||||
blk_queue_max_hw_sectors(nullb->q, dev->max_sectors);
|
blk_queue_max_hw_sectors(nullb->q, dev->max_sectors);
|
||||||
blk_queue_max_segment_size(nullb->q, dev->max_segment_size);
|
|
||||||
|
|
||||||
if (dev->virt_boundary)
|
if (dev->virt_boundary)
|
||||||
blk_queue_virt_boundary(nullb->q, PAGE_SIZE - 1);
|
blk_queue_virt_boundary(nullb->q, PAGE_SIZE - 1);
|
||||||
|
|||||||
@@ -102,7 +102,6 @@ struct nullb_device {
|
|||||||
unsigned int queue_mode; /* block interface */
|
unsigned int queue_mode; /* block interface */
|
||||||
unsigned int blocksize; /* block size */
|
unsigned int blocksize; /* block size */
|
||||||
unsigned int max_sectors; /* Max sectors per command */
|
unsigned int max_sectors; /* Max sectors per command */
|
||||||
unsigned int max_segment_size; /* Max size of a single DMA segment. */
|
|
||||||
unsigned int irqmode; /* IRQ completion handler */
|
unsigned int irqmode; /* IRQ completion handler */
|
||||||
unsigned int hw_queue_depth; /* queue depth */
|
unsigned int hw_queue_depth; /* queue depth */
|
||||||
unsigned int index; /* index of the disk, only valid with a disk */
|
unsigned int index; /* index of the disk, only valid with a disk */
|
||||||
|
|||||||
Reference in New Issue
Block a user