@@ -2055,9 +2055,6 @@ dasd_eckd_check_characteristics(struct dasd_device *device)
2055
2055
if (readonly )
2056
2056
set_bit (DASD_FLAG_DEVICE_RO , & device -> flags );
2057
2057
2058
- if (dasd_eckd_is_ese (device ))
2059
- dasd_set_feature (device -> cdev , DASD_FEATURE_DISCARD , 1 );
2060
-
2061
2058
dev_info (& device -> cdev -> dev , "New DASD %04X/%02X (CU %04X/%02X) "
2062
2059
"with %d cylinders, %d heads, %d sectors%s\n" ,
2063
2060
private -> rdc_data .dev_type ,
@@ -3691,14 +3688,6 @@ static int dasd_eckd_release_space(struct dasd_device *device,
3691
3688
return - EINVAL ;
3692
3689
}
3693
3690
3694
- static struct dasd_ccw_req *
3695
- dasd_eckd_build_cp_discard (struct dasd_device * device , struct dasd_block * block ,
3696
- struct request * req , sector_t first_trk ,
3697
- sector_t last_trk )
3698
- {
3699
- return dasd_eckd_dso_ras (device , block , req , first_trk , last_trk , 1 );
3700
- }
3701
-
3702
3691
static struct dasd_ccw_req * dasd_eckd_build_cp_cmd_single (
3703
3692
struct dasd_device * startdev ,
3704
3693
struct dasd_block * block ,
@@ -4443,10 +4432,6 @@ static struct dasd_ccw_req *dasd_eckd_build_cp(struct dasd_device *startdev,
4443
4432
cmdwtd = private -> features .feature [12 ] & 0x40 ;
4444
4433
use_prefix = private -> features .feature [8 ] & 0x01 ;
4445
4434
4446
- if (req_op (req ) == REQ_OP_DISCARD )
4447
- return dasd_eckd_build_cp_discard (startdev , block , req ,
4448
- first_trk , last_trk );
4449
-
4450
4435
cqr = NULL ;
4451
4436
if (cdlspecial || dasd_page_cache ) {
4452
4437
/* do nothing, just fall through to the cmd mode single case */
@@ -4725,14 +4710,12 @@ static struct dasd_ccw_req *dasd_eckd_build_alias_cp(struct dasd_device *base,
4725
4710
struct dasd_block * block ,
4726
4711
struct request * req )
4727
4712
{
4728
- struct dasd_device * startdev = NULL ;
4729
4713
struct dasd_eckd_private * private ;
4730
- struct dasd_ccw_req * cqr ;
4714
+ struct dasd_device * startdev ;
4731
4715
unsigned long flags ;
4716
+ struct dasd_ccw_req * cqr ;
4732
4717
4733
- /* Discard requests can only be processed on base devices */
4734
- if (req_op (req ) != REQ_OP_DISCARD )
4735
- startdev = dasd_alias_get_start_dev (base );
4718
+ startdev = dasd_alias_get_start_dev (base );
4736
4719
if (!startdev )
4737
4720
startdev = base ;
4738
4721
private = startdev -> private ;
@@ -6513,20 +6496,8 @@ static void dasd_eckd_setup_blk_queue(struct dasd_block *block)
6513
6496
unsigned int logical_block_size = block -> bp_block ;
6514
6497
struct request_queue * q = block -> request_queue ;
6515
6498
struct dasd_device * device = block -> base ;
6516
- struct dasd_eckd_private * private ;
6517
- unsigned int max_discard_sectors ;
6518
- unsigned int max_bytes ;
6519
- unsigned int ext_bytes ; /* Extent Size in Bytes */
6520
- int recs_per_trk ;
6521
- int trks_per_cyl ;
6522
- int ext_limit ;
6523
- int ext_size ; /* Extent Size in Cylinders */
6524
6499
int max ;
6525
6500
6526
- private = device -> private ;
6527
- trks_per_cyl = private -> rdc_data .trk_per_cyl ;
6528
- recs_per_trk = recs_per_track (& private -> rdc_data , 0 , logical_block_size );
6529
-
6530
6501
if (device -> features & DASD_FEATURE_USERAW ) {
6531
6502
/*
6532
6503
* the max_blocks value for raw_track access is 256
@@ -6547,28 +6518,6 @@ static void dasd_eckd_setup_blk_queue(struct dasd_block *block)
6547
6518
/* With page sized segments each segment can be translated into one idaw/tidaw */
6548
6519
blk_queue_max_segment_size (q , PAGE_SIZE );
6549
6520
blk_queue_segment_boundary (q , PAGE_SIZE - 1 );
6550
-
6551
- if (dasd_eckd_is_ese (device )) {
6552
- /*
6553
- * Depending on the extent size, up to UINT_MAX bytes can be
6554
- * accepted. However, neither DASD_ECKD_RAS_EXTS_MAX nor the
6555
- * device limits should be exceeded.
6556
- */
6557
- ext_size = dasd_eckd_ext_size (device );
6558
- ext_limit = min (private -> real_cyl / ext_size , DASD_ECKD_RAS_EXTS_MAX );
6559
- ext_bytes = ext_size * trks_per_cyl * recs_per_trk *
6560
- logical_block_size ;
6561
- max_bytes = UINT_MAX - (UINT_MAX % ext_bytes );
6562
- if (max_bytes / ext_bytes > ext_limit )
6563
- max_bytes = ext_bytes * ext_limit ;
6564
-
6565
- max_discard_sectors = max_bytes / 512 ;
6566
-
6567
- blk_queue_max_discard_sectors (q , max_discard_sectors );
6568
- blk_queue_flag_set (QUEUE_FLAG_DISCARD , q );
6569
- q -> limits .discard_granularity = ext_bytes ;
6570
- q -> limits .discard_alignment = ext_bytes ;
6571
- }
6572
6521
}
6573
6522
6574
6523
static struct ccw_driver dasd_eckd_driver = {
0 commit comments