Re: [PATCH 15/31] swim: Don't use the mark register to read data

Laurent Vivier <[email protected]>
Newsgroups org.kernel.vger.linux-block,org.kernel.vger.linux-kernel,org.kernel.vger.linux-m68k
Message-ID <[email protected]>
Le 16/07/2026 à 12:02, Finn Thain a écrit :
> If an unexpected mark byte were to be read from the data register, an
> error would be flagged. But no error gets flagged when such a byte is
> read from the mark register, which is misleading. Always use the data
> register except when a mark byte is expected.
> 
> Fixes: 8852ecd97488 ("m68k: mac - Add SWIM floppy support")
> Signed-off-by: Finn Thain <[email protected]>
> ---
>   drivers/block/swim_asm.S | 21 +++++++++++----------
>   1 file changed, 11 insertions(+), 10 deletions(-)

Reviewed-by: Laurent Vivier <[email protected]>

> 
> diff --git a/drivers/block/swim_asm.S b/drivers/block/swim_asm.S
> index 1d394ee930d6..5caeba3a75d8 100644
> --- a/drivers/block/swim_asm.S
> +++ b/drivers/block/swim_asm.S
> @@ -47,11 +47,11 @@
>   	.global swim_read_sector_header
>   swim_read_sector_header:
>   	link	%a6, #0
> -	moveml	%d1-%d5/%a0-%a4,%sp@-
> +	moveml	%d1-%d5/%a0-%a5,%sp@-
>   	movel	%a6@(0x0c), %a4
>   	moveq	#-1, %d0
>   	bsr	mfm_read_addrmark
> -	moveml	%sp@+, %d1-%d5/%a0-%a4
> +	moveml	%sp@+, %d1-%d5/%a0-%a5
>   	unlk	%a6
>   	rts
>   
> @@ -63,6 +63,7 @@ sector_data_mark:
>   mfm_read_addrmark:
>   	movel	%a6@(0x08), %a3
>   	lea	%a3@(read_handshake), %a2
> +	lea	%a3@(read_data), %a5
>   	lea	%a3@(read_mark), %a3
>   	movew	#seek_time, %d2
>   
> @@ -93,7 +94,7 @@ amark0:	tstb	%a2@
>   	dbmi	%d2, amark0
>   	bpl	signal_nonyb
>   
> -	moveb	%a3@, %a4@(o_track)
> +	moveb	%a5@, %a4@(o_track)
>   
>   	moveq	#max_retry, %d2
>   
> @@ -101,7 +102,7 @@ amark1:	tstb	%a2@
>   	dbmi	%d2, amark1
>   	bpl	signal_nonyb
>   
> -	moveb	%a3@, %a4@(o_side)
> +	moveb	%a5@, %a4@(o_side)
>   
>   	moveq	#max_retry, %d2
>   
> @@ -109,7 +110,7 @@ amark2:	tstb	%a2@
>   	dbmi	%d2, amark2
>   	bpl	signal_nonyb
>   
> -	moveb	%a3@, %a4@(o_sector)
> +	moveb	%a5@, %a4@(o_sector)
>   
>   	moveq	#max_retry, %d2
>   
> @@ -117,7 +118,7 @@ amark3:	tstb	%a2@
>   	dbmi	%d2, amark3
>   	bpl	signal_nonyb
>   
> -	moveb	%a3@, %a4@(o_size)
> +	moveb	%a5@, %a4@(o_size)
>   
>   	moveq	#max_retry, %d2
>   
> @@ -125,7 +126,7 @@ crc0:	tstb	%a2@
>   	dbmi	%d2, crc0
>   	bpl	signal_nonyb
>   
> -	moveb	%a3@, %a4@(o_crc0)
> +	moveb	%a5@, %a4@(o_crc0)
>   
>   	moveq	#max_retry, %d2
>   
> @@ -133,7 +134,7 @@ crc1:	moveb	%a2@, %d5
>   	dbmi	%d2, crc1
>   	bpl	signal_nonyb
>   
> -	moveb	%a3@, %a4@(o_crc1)
> +	moveb	%a5@, %a4@(o_crc1)
>   
>   	andb	#.Lhr_crc_error, %d5
>   	bne	signal_nonyb
> @@ -211,7 +212,7 @@ data_crc0:
>   	dbmi	%d2, data_crc0
>   	bpl	data_exit
>   
> -	moveb	%a3@, %d2
> +	moveb	%a5@, %d2
>   
>   	moveq	#max_retry, %d2
>   
> @@ -221,7 +222,7 @@ data_crc1:
>   	dbmi	%d2, data_crc1
>   	bpl	data_exit
>   
> -	moveb	%a3@, %d2
> +	moveb	%a5@, %d2
>   
>   	andb	#.Lhr_crc_error, %d5
>   	bne	data_exit
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.