@@ -1687,51 +1687,6 @@ static int nvme_tcp_start_queue(struct nvme_ctrl *nctrl, int idx)
1687
1687
return ret ;
1688
1688
}
1689
1689
1690
- static int nvme_tcp_alloc_admin_tag_set (struct nvme_ctrl * nctrl )
1691
- {
1692
- struct nvme_tcp_ctrl * ctrl = to_tcp_ctrl (nctrl );
1693
- struct blk_mq_tag_set * set = & ctrl -> admin_tag_set ;
1694
- int ret ;
1695
-
1696
- memset (set , 0 , sizeof (* set ));
1697
- set -> ops = & nvme_tcp_admin_mq_ops ;
1698
- set -> queue_depth = NVME_AQ_MQ_TAG_DEPTH ;
1699
- set -> reserved_tags = NVMF_RESERVED_TAGS ;
1700
- set -> numa_node = nctrl -> numa_node ;
1701
- set -> flags = BLK_MQ_F_BLOCKING ;
1702
- set -> cmd_size = sizeof (struct nvme_tcp_request );
1703
- set -> driver_data = & ctrl -> ctrl ;
1704
- set -> nr_hw_queues = 1 ;
1705
- set -> timeout = NVME_ADMIN_TIMEOUT ;
1706
- ret = blk_mq_alloc_tag_set (set );
1707
- if (!ret )
1708
- nctrl -> admin_tagset = set ;
1709
- return ret ;
1710
- }
1711
-
1712
- static int nvme_tcp_alloc_tag_set (struct nvme_ctrl * nctrl )
1713
- {
1714
- struct nvme_tcp_ctrl * ctrl = to_tcp_ctrl (nctrl );
1715
- struct blk_mq_tag_set * set = & ctrl -> tag_set ;
1716
- int ret ;
1717
-
1718
- memset (set , 0 , sizeof (* set ));
1719
- set -> ops = & nvme_tcp_mq_ops ;
1720
- set -> queue_depth = nctrl -> sqsize + 1 ;
1721
- set -> reserved_tags = NVMF_RESERVED_TAGS ;
1722
- set -> numa_node = nctrl -> numa_node ;
1723
- set -> flags = BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_BLOCKING ;
1724
- set -> cmd_size = sizeof (struct nvme_tcp_request );
1725
- set -> driver_data = & ctrl -> ctrl ;
1726
- set -> nr_hw_queues = nctrl -> queue_count - 1 ;
1727
- set -> timeout = NVME_IO_TIMEOUT ;
1728
- set -> nr_maps = nctrl -> opts -> nr_poll_queues ? HCTX_MAX_TYPES : 2 ;
1729
- ret = blk_mq_alloc_tag_set (set );
1730
- if (!ret )
1731
- nctrl -> tagset = set ;
1732
- return ret ;
1733
- }
1734
-
1735
1690
static void nvme_tcp_free_admin_queue (struct nvme_ctrl * ctrl )
1736
1691
{
1737
1692
if (to_tcp_ctrl (ctrl )-> async_req .pdu ) {
@@ -1890,10 +1845,8 @@ static int nvme_tcp_alloc_io_queues(struct nvme_ctrl *ctrl)
1890
1845
static void nvme_tcp_destroy_io_queues (struct nvme_ctrl * ctrl , bool remove )
1891
1846
{
1892
1847
nvme_tcp_stop_io_queues (ctrl );
1893
- if (remove ) {
1894
- blk_mq_destroy_queue (ctrl -> connect_q );
1895
- blk_mq_free_tag_set (ctrl -> tagset );
1896
- }
1848
+ if (remove )
1849
+ nvme_remove_io_tag_set (ctrl );
1897
1850
nvme_tcp_free_io_queues (ctrl );
1898
1851
}
1899
1852
@@ -1906,13 +1859,12 @@ static int nvme_tcp_configure_io_queues(struct nvme_ctrl *ctrl, bool new)
1906
1859
return ret ;
1907
1860
1908
1861
if (new ) {
1909
- ret = nvme_tcp_alloc_tag_set (ctrl );
1862
+ ret = nvme_alloc_io_tag_set (ctrl , & to_tcp_ctrl (ctrl )-> tag_set ,
1863
+ & nvme_tcp_mq_ops ,
1864
+ BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_BLOCKING ,
1865
+ sizeof (struct nvme_tcp_request ));
1910
1866
if (ret )
1911
1867
goto out_free_io_queues ;
1912
-
1913
- ret = nvme_ctrl_init_connect_q (ctrl );
1914
- if (ret )
1915
- goto out_free_tag_set ;
1916
1868
}
1917
1869
1918
1870
/*
@@ -1959,10 +1911,7 @@ static int nvme_tcp_configure_io_queues(struct nvme_ctrl *ctrl, bool new)
1959
1911
out_cleanup_connect_q :
1960
1912
nvme_cancel_tagset (ctrl );
1961
1913
if (new )
1962
- blk_mq_destroy_queue (ctrl -> connect_q );
1963
- out_free_tag_set :
1964
- if (new )
1965
- blk_mq_free_tag_set (ctrl -> tagset );
1914
+ nvme_remove_io_tag_set (ctrl );
1966
1915
out_free_io_queues :
1967
1916
nvme_tcp_free_io_queues (ctrl );
1968
1917
return ret ;
@@ -1971,11 +1920,8 @@ static int nvme_tcp_configure_io_queues(struct nvme_ctrl *ctrl, bool new)
1971
1920
static void nvme_tcp_destroy_admin_queue (struct nvme_ctrl * ctrl , bool remove )
1972
1921
{
1973
1922
nvme_tcp_stop_queue (ctrl , 0 );
1974
- if (remove ) {
1975
- blk_mq_destroy_queue (ctrl -> admin_q );
1976
- blk_mq_destroy_queue (ctrl -> fabrics_q );
1977
- blk_mq_free_tag_set (ctrl -> admin_tagset );
1978
- }
1923
+ if (remove )
1924
+ nvme_remove_admin_tag_set (ctrl );
1979
1925
nvme_tcp_free_admin_queue (ctrl );
1980
1926
}
1981
1927
@@ -1988,26 +1934,17 @@ static int nvme_tcp_configure_admin_queue(struct nvme_ctrl *ctrl, bool new)
1988
1934
return error ;
1989
1935
1990
1936
if (new ) {
1991
- error = nvme_tcp_alloc_admin_tag_set (ctrl );
1937
+ error = nvme_alloc_admin_tag_set (ctrl ,
1938
+ & to_tcp_ctrl (ctrl )-> admin_tag_set ,
1939
+ & nvme_tcp_admin_mq_ops , BLK_MQ_F_BLOCKING ,
1940
+ sizeof (struct nvme_tcp_request ));
1992
1941
if (error )
1993
1942
goto out_free_queue ;
1994
-
1995
- ctrl -> fabrics_q = blk_mq_init_queue (ctrl -> admin_tagset );
1996
- if (IS_ERR (ctrl -> fabrics_q )) {
1997
- error = PTR_ERR (ctrl -> fabrics_q );
1998
- goto out_free_tagset ;
1999
- }
2000
-
2001
- ctrl -> admin_q = blk_mq_init_queue (ctrl -> admin_tagset );
2002
- if (IS_ERR (ctrl -> admin_q )) {
2003
- error = PTR_ERR (ctrl -> admin_q );
2004
- goto out_cleanup_fabrics_q ;
2005
- }
2006
1943
}
2007
1944
2008
1945
error = nvme_tcp_start_queue (ctrl , 0 );
2009
1946
if (error )
2010
- goto out_cleanup_queue ;
1947
+ goto out_cleanup_tagset ;
2011
1948
2012
1949
error = nvme_enable_ctrl (ctrl );
2013
1950
if (error )
@@ -2027,15 +1964,9 @@ static int nvme_tcp_configure_admin_queue(struct nvme_ctrl *ctrl, bool new)
2027
1964
out_stop_queue :
2028
1965
nvme_tcp_stop_queue (ctrl , 0 );
2029
1966
nvme_cancel_admin_tagset (ctrl );
2030
- out_cleanup_queue :
2031
- if (new )
2032
- blk_mq_destroy_queue (ctrl -> admin_q );
2033
- out_cleanup_fabrics_q :
2034
- if (new )
2035
- blk_mq_destroy_queue (ctrl -> fabrics_q );
2036
- out_free_tagset :
1967
+ out_cleanup_tagset :
2037
1968
if (new )
2038
- blk_mq_free_tag_set (ctrl -> admin_tagset );
1969
+ nvme_remove_admin_tag_set (ctrl );
2039
1970
out_free_queue :
2040
1971
nvme_tcp_free_admin_queue (ctrl );
2041
1972
return error ;
0 commit comments