Skip to content

Commit d49f8a5

Browse files
committed
Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI updates from James Bottomley: "This is mostly updates of the usual drivers: UFS, esp_scsi, NCR5380, qla2xxx, lpfc, libsas, hisi_sas. In addition there's a set of mostly small updates to the target subsystem a set of conversions to the generic DMA API, which do have some potential for issues in the older drivers but we'll handle those as case by case fixes. A new myrs driver for the DAC960/mylex raid controllers to replace the block based DAC960 which is also being removed by Jens in this merge window. Plus the usual slew of trivial changes" [ "myrs" stands for "MYlex Raid Scsi". Obviously. Silly of me to even wonder. There's also a "myrb" driver, where the 'b' stands for 'block'. Truly, somebody has got mad naming skillz. - Linus ] * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (237 commits) scsi: myrs: Fix the processor absent message in processor_show() scsi: myrs: Fix a logical vs bitwise bug scsi: hisi_sas: Fix NULL pointer dereference scsi: myrs: fix build failure on 32 bit scsi: fnic: replace gross legacy tag hack with blk-mq hack scsi: mesh: switch to generic DMA API scsi: ips: switch to generic DMA API scsi: smartpqi: fully convert to the generic DMA API scsi: vmw_pscsi: switch to generic DMA API scsi: snic: switch to generic DMA API scsi: qla4xxx: fully convert to the generic DMA API scsi: qla2xxx: fully convert to the generic DMA API scsi: qla1280: switch to generic DMA API scsi: qedi: fully convert to the generic DMA API scsi: qedf: fully convert to the generic DMA API scsi: pm8001: switch to generic DMA API scsi: nsp32: switch to generic DMA API scsi: mvsas: fully convert to the generic DMA API scsi: mvumi: switch to generic DMA API scsi: mpt3sas: switch to generic DMA API ...
2 parents bd6bf7c + a0db8a7 commit d49f8a5

File tree

200 files changed

+16045
-5954
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

200 files changed

+16045
-5954
lines changed

Documentation/scsi/ufs.txt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,26 @@ The current UFSHCD implementation supports following functionality,
128128
In this version of UFSHCD Query requests and power management
129129
functionality are not implemented.
130130

131+
4. BSG Support
132+
------------------
133+
134+
This transport driver supports exchanging UFS protocol information units
135+
(UPIUs) with a UFS device. Typically, user space will allocate
136+
struct ufs_bsg_request and struct ufs_bsg_reply (see ufs_bsg.h) as
137+
request_upiu and reply_upiu respectively. Filling those UPIUs should
138+
be done in accordance with JEDEC spec UFS2.1 paragraph 10.7.
139+
*Caveat emptor*: The driver makes no further input validations and sends the
140+
UPIU to the device as it is. Open the bsg device in /dev/ufs-bsg and
141+
send SG_IO with the applicable sg_io_v4:
142+
143+
io_hdr_v4.guard = 'Q';
144+
io_hdr_v4.protocol = BSG_PROTOCOL_SCSI;
145+
io_hdr_v4.subprotocol = BSG_SUB_PROTOCOL_SCSI_TRANSPORT;
146+
io_hdr_v4.response = (__u64)reply_upiu;
147+
io_hdr_v4.max_response_len = reply_len;
148+
io_hdr_v4.request_len = request_len;
149+
io_hdr_v4.request = (__u64)request_upiu;
150+
131151
UFS Specifications can be found at,
132152
UFS - http://www.jedec.org/sites/default/files/docs/JESD220.pdf
133153
UFSHCI - http://www.jedec.org/sites/default/files/docs/JESD223.pdf

MAINTAINERS

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4055,7 +4055,7 @@ M: Uma Krishnan <ukrishn@linux.vnet.ibm.com>
40554055
L: linux-scsi@vger.kernel.org
40564056
S: Supported
40574057
F: drivers/scsi/cxlflash/
4058-
F: include/uapi/scsi/cxlflash_ioctls.h
4058+
F: include/uapi/scsi/cxlflash_ioctl.h
40594059
F: Documentation/powerpc/cxlflash.txt
40604060

40614061
CYBERPRO FB DRIVER
@@ -10011,6 +10011,13 @@ S: Supported
1001110011
F: drivers/gpu/drm/mxsfb/
1001210012
F: Documentation/devicetree/bindings/display/mxsfb.txt
1001310013

10014+
MYLEX DAC960 PCI RAID Controller
10015+
M: Hannes Reinecke <hare@kernel.org>
10016+
L: linux-scsi@vger.kernel.org
10017+
S: Supported
10018+
F: drivers/scsi/myrb.*
10019+
F: drivers/scsi/myrs.*
10020+
1001410021
MYRICOM MYRI-10G 10GbE DRIVER (MYRI10GE)
1001510022
M: Chris Lee <christopher.lee@cspi.com>
1001610023
L: netdev@vger.kernel.org

drivers/message/fusion/lsi/mpi_cnfg.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2004,7 +2004,7 @@ typedef struct _CONFIG_PAGE_FC_PORT_6
20042004
U64 LinkFailureCount; /* 50h */
20052005
U64 LossOfSyncCount; /* 58h */
20062006
U64 LossOfSignalCount; /* 60h */
2007-
U64 PrimativeSeqErrCount; /* 68h */
2007+
U64 PrimitiveSeqErrCount; /* 68h */
20082008
U64 InvalidTxWordCount; /* 70h */
20092009
U64 InvalidCrcCount; /* 78h */
20102010
U64 FcpInitiatorIoCount; /* 80h */

drivers/message/fusion/mptbase.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -335,11 +335,11 @@ static int mpt_remove_dead_ioc_func(void *arg)
335335
MPT_ADAPTER *ioc = (MPT_ADAPTER *)arg;
336336
struct pci_dev *pdev;
337337

338-
if ((ioc == NULL))
338+
if (!ioc)
339339
return -1;
340340

341341
pdev = ioc->pcidev;
342-
if ((pdev == NULL))
342+
if (!pdev)
343343
return -1;
344344

345345
pci_stop_and_remove_bus_device_locked(pdev);
@@ -7570,11 +7570,11 @@ mpt_display_event_info(MPT_ADAPTER *ioc, EventNotificationReply_t *pEventReply)
75707570
u8 phy_num = (u8)(evData0);
75717571
u8 port_num = (u8)(evData0 >> 8);
75727572
u8 port_width = (u8)(evData0 >> 16);
7573-
u8 primative = (u8)(evData0 >> 24);
7573+
u8 primitive = (u8)(evData0 >> 24);
75747574
snprintf(evStr, EVENT_DESCR_STR_SZ,
7575-
"SAS Broadcase Primative: phy=%d port=%d "
7576-
"width=%d primative=0x%02x",
7577-
phy_num, port_num, port_width, primative);
7575+
"SAS Broadcast Primitive: phy=%d port=%d "
7576+
"width=%d primitive=0x%02x",
7577+
phy_num, port_num, port_width, primitive);
75787578
break;
75797579
}
75807580

drivers/message/fusion/mptsas.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ static void mptsas_expander_delete(MPT_ADAPTER *ioc,
129129
static void mptsas_send_expander_event(struct fw_event_work *fw_event);
130130
static void mptsas_not_responding_devices(MPT_ADAPTER *ioc);
131131
static void mptsas_scan_sas_topology(MPT_ADAPTER *ioc);
132-
static void mptsas_broadcast_primative_work(struct fw_event_work *fw_event);
132+
static void mptsas_broadcast_primitive_work(struct fw_event_work *fw_event);
133133
static void mptsas_handle_queue_full_event(struct fw_event_work *fw_event);
134134
static void mptsas_volume_delete(MPT_ADAPTER *ioc, u8 id);
135135
void mptsas_schedule_target_reset(void *ioc);
@@ -1665,7 +1665,7 @@ mptsas_firmware_event_work(struct work_struct *work)
16651665
mptsas_free_fw_event(ioc, fw_event);
16661666
break;
16671667
case MPI_EVENT_SAS_BROADCAST_PRIMITIVE:
1668-
mptsas_broadcast_primative_work(fw_event);
1668+
mptsas_broadcast_primitive_work(fw_event);
16691669
break;
16701670
case MPI_EVENT_SAS_EXPANDER_STATUS_CHANGE:
16711671
mptsas_send_expander_event(fw_event);
@@ -4826,13 +4826,13 @@ mptsas_issue_tm(MPT_ADAPTER *ioc, u8 type, u8 channel, u8 id, u64 lun,
48264826
}
48274827

48284828
/**
4829-
* mptsas_broadcast_primative_work - Handle broadcast primitives
4829+
* mptsas_broadcast_primitive_work - Handle broadcast primitives
48304830
* @work: work queue payload containing info describing the event
48314831
*
48324832
* this will be handled in workqueue context.
48334833
*/
48344834
static void
4835-
mptsas_broadcast_primative_work(struct fw_event_work *fw_event)
4835+
mptsas_broadcast_primitive_work(struct fw_event_work *fw_event)
48364836
{
48374837
MPT_ADAPTER *ioc = fw_event->ioc;
48384838
MPT_FRAME_HDR *mf;

drivers/scsi/3w-9xxx.c

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -518,15 +518,17 @@ static int twa_allocate_memory(TW_Device_Extension *tw_dev, int size, int which)
518518
unsigned long *cpu_addr;
519519
int retval = 1;
520520

521-
cpu_addr = pci_alloc_consistent(tw_dev->tw_pci_dev, size*TW_Q_LENGTH, &dma_handle);
521+
cpu_addr = dma_alloc_coherent(&tw_dev->tw_pci_dev->dev,
522+
size * TW_Q_LENGTH, &dma_handle, GFP_KERNEL);
522523
if (!cpu_addr) {
523524
TW_PRINTK(tw_dev->host, TW_DRIVER, 0x5, "Memory allocation failed");
524525
goto out;
525526
}
526527

527528
if ((unsigned long)cpu_addr % (TW_ALIGNMENT_9000)) {
528529
TW_PRINTK(tw_dev->host, TW_DRIVER, 0x6, "Failed to allocate correctly aligned memory");
529-
pci_free_consistent(tw_dev->tw_pci_dev, size*TW_Q_LENGTH, cpu_addr, dma_handle);
530+
dma_free_coherent(&tw_dev->tw_pci_dev->dev, size * TW_Q_LENGTH,
531+
cpu_addr, dma_handle);
530532
goto out;
531533
}
532534

@@ -1027,16 +1029,16 @@ static int twa_fill_sense(TW_Device_Extension *tw_dev, int request_id, int copy_
10271029
static void twa_free_device_extension(TW_Device_Extension *tw_dev)
10281030
{
10291031
if (tw_dev->command_packet_virt[0])
1030-
pci_free_consistent(tw_dev->tw_pci_dev,
1031-
sizeof(TW_Command_Full)*TW_Q_LENGTH,
1032-
tw_dev->command_packet_virt[0],
1033-
tw_dev->command_packet_phys[0]);
1032+
dma_free_coherent(&tw_dev->tw_pci_dev->dev,
1033+
sizeof(TW_Command_Full) * TW_Q_LENGTH,
1034+
tw_dev->command_packet_virt[0],
1035+
tw_dev->command_packet_phys[0]);
10341036

10351037
if (tw_dev->generic_buffer_virt[0])
1036-
pci_free_consistent(tw_dev->tw_pci_dev,
1037-
TW_SECTOR_SIZE*TW_Q_LENGTH,
1038-
tw_dev->generic_buffer_virt[0],
1039-
tw_dev->generic_buffer_phys[0]);
1038+
dma_free_coherent(&tw_dev->tw_pci_dev->dev,
1039+
TW_SECTOR_SIZE * TW_Q_LENGTH,
1040+
tw_dev->generic_buffer_virt[0],
1041+
tw_dev->generic_buffer_phys[0]);
10401042

10411043
kfree(tw_dev->event_queue[0]);
10421044
} /* End twa_free_device_extension() */
@@ -2015,14 +2017,12 @@ static int twa_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id)
20152017
pci_set_master(pdev);
20162018
pci_try_set_mwi(pdev);
20172019

2018-
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))
2019-
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)))
2020-
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
2021-
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
2022-
TW_PRINTK(host, TW_DRIVER, 0x23, "Failed to set dma mask");
2023-
retval = -ENODEV;
2024-
goto out_disable_device;
2025-
}
2020+
if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
2021+
dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) {
2022+
TW_PRINTK(host, TW_DRIVER, 0x23, "Failed to set dma mask");
2023+
retval = -ENODEV;
2024+
goto out_disable_device;
2025+
}
20262026

20272027
host = scsi_host_alloc(&driver_template, sizeof(TW_Device_Extension));
20282028
if (!host) {
@@ -2237,14 +2237,12 @@ static int twa_resume(struct pci_dev *pdev)
22372237
pci_set_master(pdev);
22382238
pci_try_set_mwi(pdev);
22392239

2240-
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))
2241-
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)))
2242-
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
2243-
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
2244-
TW_PRINTK(host, TW_DRIVER, 0x40, "Failed to set dma mask during resume");
2245-
retval = -ENODEV;
2246-
goto out_disable_device;
2247-
}
2240+
if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
2241+
dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) {
2242+
TW_PRINTK(host, TW_DRIVER, 0x40, "Failed to set dma mask during resume");
2243+
retval = -ENODEV;
2244+
goto out_disable_device;
2245+
}
22482246

22492247
/* Initialize the card */
22502248
if (twa_reset_sequence(tw_dev, 0)) {

drivers/scsi/3w-sas.c

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -644,8 +644,8 @@ static int twl_allocate_memory(TW_Device_Extension *tw_dev, int size, int which)
644644
unsigned long *cpu_addr;
645645
int retval = 1;
646646

647-
cpu_addr = pci_zalloc_consistent(tw_dev->tw_pci_dev, size * TW_Q_LENGTH,
648-
&dma_handle);
647+
cpu_addr = dma_zalloc_coherent(&tw_dev->tw_pci_dev->dev,
648+
size * TW_Q_LENGTH, &dma_handle, GFP_KERNEL);
649649
if (!cpu_addr) {
650650
TW_PRINTK(tw_dev->host, TW_DRIVER, 0x5, "Memory allocation failed");
651651
goto out;
@@ -899,19 +899,19 @@ static int twl_fill_sense(TW_Device_Extension *tw_dev, int i, int request_id, in
899899
static void twl_free_device_extension(TW_Device_Extension *tw_dev)
900900
{
901901
if (tw_dev->command_packet_virt[0])
902-
pci_free_consistent(tw_dev->tw_pci_dev,
902+
dma_free_coherent(&tw_dev->tw_pci_dev->dev,
903903
sizeof(TW_Command_Full)*TW_Q_LENGTH,
904904
tw_dev->command_packet_virt[0],
905905
tw_dev->command_packet_phys[0]);
906906

907907
if (tw_dev->generic_buffer_virt[0])
908-
pci_free_consistent(tw_dev->tw_pci_dev,
908+
dma_free_coherent(&tw_dev->tw_pci_dev->dev,
909909
TW_SECTOR_SIZE*TW_Q_LENGTH,
910910
tw_dev->generic_buffer_virt[0],
911911
tw_dev->generic_buffer_phys[0]);
912912

913913
if (tw_dev->sense_buffer_virt[0])
914-
pci_free_consistent(tw_dev->tw_pci_dev,
914+
dma_free_coherent(&tw_dev->tw_pci_dev->dev,
915915
sizeof(TW_Command_Apache_Header)*
916916
TW_Q_LENGTH,
917917
tw_dev->sense_buffer_virt[0],
@@ -1571,14 +1571,12 @@ static int twl_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id)
15711571
pci_set_master(pdev);
15721572
pci_try_set_mwi(pdev);
15731573

1574-
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))
1575-
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)))
1576-
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
1577-
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
1578-
TW_PRINTK(host, TW_DRIVER, 0x18, "Failed to set dma mask");
1579-
retval = -ENODEV;
1580-
goto out_disable_device;
1581-
}
1574+
if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
1575+
dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) {
1576+
TW_PRINTK(host, TW_DRIVER, 0x18, "Failed to set dma mask");
1577+
retval = -ENODEV;
1578+
goto out_disable_device;
1579+
}
15821580

15831581
host = scsi_host_alloc(&driver_template, sizeof(TW_Device_Extension));
15841582
if (!host) {
@@ -1805,14 +1803,12 @@ static int twl_resume(struct pci_dev *pdev)
18051803
pci_set_master(pdev);
18061804
pci_try_set_mwi(pdev);
18071805

1808-
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))
1809-
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)))
1810-
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
1811-
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
1812-
TW_PRINTK(host, TW_DRIVER, 0x25, "Failed to set dma mask during resume");
1813-
retval = -ENODEV;
1814-
goto out_disable_device;
1815-
}
1806+
if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
1807+
dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) {
1808+
TW_PRINTK(host, TW_DRIVER, 0x25, "Failed to set dma mask during resume");
1809+
retval = -ENODEV;
1810+
goto out_disable_device;
1811+
}
18161812

18171813
/* Initialize the card */
18181814
if (twl_reset_sequence(tw_dev, 0)) {

drivers/scsi/3w-xxxx.c

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -834,15 +834,17 @@ static int tw_allocate_memory(TW_Device_Extension *tw_dev, int size, int which)
834834

835835
dprintk(KERN_NOTICE "3w-xxxx: tw_allocate_memory()\n");
836836

837-
cpu_addr = pci_alloc_consistent(tw_dev->tw_pci_dev, size*TW_Q_LENGTH, &dma_handle);
837+
cpu_addr = dma_alloc_coherent(&tw_dev->tw_pci_dev->dev,
838+
size * TW_Q_LENGTH, &dma_handle, GFP_KERNEL);
838839
if (cpu_addr == NULL) {
839-
printk(KERN_WARNING "3w-xxxx: pci_alloc_consistent() failed.\n");
840+
printk(KERN_WARNING "3w-xxxx: dma_alloc_coherent() failed.\n");
840841
return 1;
841842
}
842843

843844
if ((unsigned long)cpu_addr % (tw_dev->tw_pci_dev->device == TW_DEVICE_ID ? TW_ALIGNMENT_6000 : TW_ALIGNMENT_7000)) {
844845
printk(KERN_WARNING "3w-xxxx: Couldn't allocate correctly aligned memory.\n");
845-
pci_free_consistent(tw_dev->tw_pci_dev, size*TW_Q_LENGTH, cpu_addr, dma_handle);
846+
dma_free_coherent(&tw_dev->tw_pci_dev->dev, size * TW_Q_LENGTH,
847+
cpu_addr, dma_handle);
846848
return 1;
847849
}
848850

@@ -1062,10 +1064,16 @@ static void tw_free_device_extension(TW_Device_Extension *tw_dev)
10621064

10631065
/* Free command packet and generic buffer memory */
10641066
if (tw_dev->command_packet_virtual_address[0])
1065-
pci_free_consistent(tw_dev->tw_pci_dev, sizeof(TW_Command)*TW_Q_LENGTH, tw_dev->command_packet_virtual_address[0], tw_dev->command_packet_physical_address[0]);
1067+
dma_free_coherent(&tw_dev->tw_pci_dev->dev,
1068+
sizeof(TW_Command) * TW_Q_LENGTH,
1069+
tw_dev->command_packet_virtual_address[0],
1070+
tw_dev->command_packet_physical_address[0]);
10661071

10671072
if (tw_dev->alignment_virtual_address[0])
1068-
pci_free_consistent(tw_dev->tw_pci_dev, sizeof(TW_Sector)*TW_Q_LENGTH, tw_dev->alignment_virtual_address[0], tw_dev->alignment_physical_address[0]);
1073+
dma_free_coherent(&tw_dev->tw_pci_dev->dev,
1074+
sizeof(TW_Sector) * TW_Q_LENGTH,
1075+
tw_dev->alignment_virtual_address[0],
1076+
tw_dev->alignment_physical_address[0]);
10691077
} /* End tw_free_device_extension() */
10701078

10711079
/* This function will send an initconnection command to controller */
@@ -2260,7 +2268,7 @@ static int tw_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id)
22602268

22612269
pci_set_master(pdev);
22622270

2263-
retval = pci_set_dma_mask(pdev, TW_DMA_MASK);
2271+
retval = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
22642272
if (retval) {
22652273
printk(KERN_WARNING "3w-xxxx: Failed to set dma mask.");
22662274
goto out_disable_device;

drivers/scsi/3w-xxxx.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,6 @@ static unsigned char tw_sense_table[][4] =
230230
#define TW_IOCTL_TIMEOUT 25 /* 25 seconds */
231231
#define TW_IOCTL_CHRDEV_TIMEOUT 60 /* 60 seconds */
232232
#define TW_IOCTL_CHRDEV_FREE -1
233-
#define TW_DMA_MASK DMA_BIT_MASK(32)
234233
#define TW_MAX_CDB_LEN 16
235234

236235
/* Bitmask macros to eliminate bitfields */

drivers/scsi/53c700.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ struct NCR_700_Device_Parameters {
9090
/* The SYNC negotiation sequence looks like:
9191
*
9292
* If DEV_NEGOTIATED_SYNC not set, tack and SDTR message on to the
93-
* initial identify for the device and set DEV_BEGIN_SYNC_NEGOTATION
93+
* initial identify for the device and set DEV_BEGIN_SYNC_NEGOTIATION
9494
* If we get an SDTR reply, work out the SXFER parameters, squirrel
9595
* them away here, clear DEV_BEGIN_SYNC_NEGOTIATION and set
9696
* DEV_NEGOTIATED_SYNC. If we get a REJECT msg, squirrel

0 commit comments

Comments
 (0)