linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
       [not found] <469BD9C8.4000808@googlemail.com>
@ 2007-07-17  0:44 ` Gabriel C
  2007-07-17  1:09   ` FUJITA Tomonori
  0 siblings, 1 reply; 9+ messages in thread
From: Gabriel C @ 2007-07-17  0:44 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Jens Axboe, Linus Torvalds, linux-scsi

Gabriel C wrote:
> Hello,
>
> sdparm and hdparm are broken for me on git (
> abce891a10559343d8ac9f79b46d78afdba63a40 )
>
>
> ~$ sudo hdparm  /dev/sdc
>
> /dev/sdc:
>  BLKROGET failed: Inappropriate ioctl for device
>  BLKRAGET failed: Inappropriate ioctl for device
>  BLKGETSIZE failed: Inappropriate ioctl for device
>
>
> ~$ sudo sdparm  --all /dev/sdc
> unable to access /dev/sdc, ATA disk?
>
>   

Well it is bsg , setting BLK_DEV_BSG=n fixed all this errors.

Maybe a bit off topic but it depends on EXPERIMENTAL so why the the menu
is not telling this ? and why the default is 'y' for it ?

IMO everything depends on EXPERIMENTAL should

1) Tell it is EXPERIMENTAL ( visible to the user in menu ) " Foo New
stuff ( EXPERIMENTAL ) "
2) Should not default to 'y' , is up to the users/admins to set
EXPERIMENTAL things to Y/M , isn't it ?


( PS: there are even defconfigs with EXPERIMENTAL things set to y but
this is really off topic )


Regards,

Gabriel C




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
  2007-07-17  0:44 ` Someone ( bsg merge ? ) broke {sd,hd}parm on current git Gabriel C
@ 2007-07-17  1:09   ` FUJITA Tomonori
  2007-07-17  1:40     ` Gabriel C
  0 siblings, 1 reply; 9+ messages in thread
From: FUJITA Tomonori @ 2007-07-17  1:09 UTC (permalink / raw)
  To: nix.or.die; +Cc: linux-kernel, jens.axboe, torvalds, linux-scsi

From: Gabriel C <nix.or.die@googlemail.com>
Subject: Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
Date: Tue, 17 Jul 2007 02:44:38 +0200

> Gabriel C wrote:
> > Hello,
> >
> > sdparm and hdparm are broken for me on git (
> > abce891a10559343d8ac9f79b46d78afdba63a40 )
> >
> >
> > ~$ sudo hdparm  /dev/sdc
> >
> > /dev/sdc:
> >  BLKROGET failed: Inappropriate ioctl for device
> >  BLKRAGET failed: Inappropriate ioctl for device
> >  BLKGETSIZE failed: Inappropriate ioctl for device
> >
> >
> > ~$ sudo sdparm  --all /dev/sdc
> > unable to access /dev/sdc, ATA disk?
> >
> >   
> 
> Well it is bsg , setting BLK_DEV_BSG=n fixed all this errors.

Can you check the major number of your /dev/sdc? I've seen that
/dev/sd* is linked to bsg devices somehow.


> Maybe a bit off topic but it depends on EXPERIMENTAL so why the the menu
> is not telling this ? and why the default is 'y' for it ?
> 
> IMO everything depends on EXPERIMENTAL should
> 
> 1) Tell it is EXPERIMENTAL ( visible to the user in menu ) " Foo New
> stuff ( EXPERIMENTAL ) "
> 2) Should not default to 'y' , is up to the users/admins to set
> EXPERIMENTAL things to Y/M , isn't it ?
> 
> 
> ( PS: there are even defconfigs with EXPERIMENTAL things set to y but
> this is really off topic )

I'll fix it, thanks.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
  2007-07-17  1:09   ` FUJITA Tomonori
@ 2007-07-17  1:40     ` Gabriel C
  2007-07-18 23:25       ` FUJITA Tomonori
  0 siblings, 1 reply; 9+ messages in thread
From: Gabriel C @ 2007-07-17  1:40 UTC (permalink / raw)
  To: FUJITA Tomonori; +Cc: linux-kernel, jens.axboe, torvalds, linux-scsi

FUJITA Tomonori wrote:
> From: Gabriel C <nix.or.die@googlemail.com>
> Subject: Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
> Date: Tue, 17 Jul 2007 02:44:38 +0200
>
>   
>> Gabriel C wrote:
>>     
>>> Hello,
>>>
>>> sdparm and hdparm are broken for me on git (
>>> abce891a10559343d8ac9f79b46d78afdba63a40 )
>>>
>>>
>>> ~$ sudo hdparm  /dev/sdc
>>>
>>> /dev/sdc:
>>>  BLKROGET failed: Inappropriate ioctl for device
>>>  BLKRAGET failed: Inappropriate ioctl for device
>>>  BLKGETSIZE failed: Inappropriate ioctl for device
>>>
>>>
>>> ~$ sudo sdparm  --all /dev/sdc
>>> unable to access /dev/sdc, ATA disk?
>>>
>>>   
>>>       
>> Well it is bsg , setting BLK_DEV_BSG=n fixed all this errors.
>>     
>
> Can you check the major number of your /dev/sdc? I've seen that
> /dev/sd* is linked to bsg devices somehow.
>
>
>   

All my disks are doing this sdc was meant as example.

...

$ ls -la /dev/sd{a,b,c}
brw-r----- 1 root disk 8, 0 16. Jul 23:11 /dev/sda
brw-rw---- 1 root disk 8, 16 16. Jul 23:11 /dev/sdb
brw-r----- 1 root disk 8, 32 16. Jul 23:11 /dev/sdc

...

sd{a,b} are SCSI disks and sdc is an ATA disk.

You can get the used config from there :


http://194.231.229.228/2.6.22-gabce891a/config



Gabriel

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
  2007-07-17  1:40     ` Gabriel C
@ 2007-07-18 23:25       ` FUJITA Tomonori
  2007-07-19  0:48         ` Gabriel C
  2007-07-19 14:02         ` James Bottomley
  0 siblings, 2 replies; 9+ messages in thread
From: FUJITA Tomonori @ 2007-07-18 23:25 UTC (permalink / raw)
  To: nix.or.die
  Cc: fujita.tomonori, linux-kernel, jens.axboe, torvalds, linux-scsi

From: Gabriel C <nix.or.die@googlemail.com>
Subject: Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
Date: Tue, 17 Jul 2007 03:40:58 +0200

> FUJITA Tomonori wrote:
> > From: Gabriel C <nix.or.die@googlemail.com>
> > Subject: Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
> > Date: Tue, 17 Jul 2007 02:44:38 +0200
> >
> >   
> >> Gabriel C wrote:
> >>     
> >>> Hello,
> >>>
> >>> sdparm and hdparm are broken for me on git (
> >>> abce891a10559343d8ac9f79b46d78afdba63a40 )
> >>>
> >>>
> >>> ~$ sudo hdparm  /dev/sdc
> >>>
> >>> /dev/sdc:
> >>>  BLKROGET failed: Inappropriate ioctl for device
> >>>  BLKRAGET failed: Inappropriate ioctl for device
> >>>  BLKGETSIZE failed: Inappropriate ioctl for device
> >>>
> >>>
> >>> ~$ sudo sdparm  --all /dev/sdc
> >>> unable to access /dev/sdc, ATA disk?
> >>>
> >>>   
> >>>       
> >> Well it is bsg , setting BLK_DEV_BSG=n fixed all this errors.

I've not tested this yet (need to find sata drives in my workplace),
but James Bottomley told me that both works for him with bsg enabled.
It might worth trying the latest git tree.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
  2007-07-18 23:25       ` FUJITA Tomonori
@ 2007-07-19  0:48         ` Gabriel C
  2007-07-19 14:02         ` James Bottomley
  1 sibling, 0 replies; 9+ messages in thread
From: Gabriel C @ 2007-07-19  0:48 UTC (permalink / raw)
  To: FUJITA Tomonori
  Cc: linux-kernel, jens.axboe, torvalds, linux-scsi, James.Bottomley

FUJITA Tomonori wrote:
> From: Gabriel C <nix.or.die@googlemail.com>
> Subject: Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
> Date: Tue, 17 Jul 2007 03:40:58 +0200
>
>   
>> FUJITA Tomonori wrote:
>>     
>>> From: Gabriel C <nix.or.die@googlemail.com>
>>> Subject: Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
>>> Date: Tue, 17 Jul 2007 02:44:38 +0200
>>>
>>>   
>>>       
>>>> Gabriel C wrote:
>>>>     
>>>>         
>>>>> Hello,
>>>>>
>>>>> sdparm and hdparm are broken for me on git (
>>>>> abce891a10559343d8ac9f79b46d78afdba63a40 )
>>>>>
>>>>>
>>>>> ~$ sudo hdparm  /dev/sdc
>>>>>
>>>>> /dev/sdc:
>>>>>  BLKROGET failed: Inappropriate ioctl for device
>>>>>  BLKRAGET failed: Inappropriate ioctl for device
>>>>>  BLKGETSIZE failed: Inappropriate ioctl for device
>>>>>
>>>>>
>>>>> ~$ sudo sdparm  --all /dev/sdc
>>>>> unable to access /dev/sdc, ATA disk?
>>>>>
>>>>>   
>>>>>       
>>>>>           
>>>> Well it is bsg , setting BLK_DEV_BSG=n fixed all this errors.
>>>>         
>
> I've not tested this yet (need to find sata drives in my workplace),
> but James Bottomley told me that both works for him with bsg enabled.
> It might worth trying the latest git tree.
>
>   

Hi ,

I'm running current git head and this problem still exists.

crazy@lara:/work/crazy/linux-git/linux2.6$ git rev-parse --verify HEAD
5bae7ac9feba925fd0099057f6b23d7be80b7b41


With BLK_DEV_BSG=n


crazy@lara:/work/crazy/linux-git/linux2.6$ sudo sdparm /dev/sda
/dev/sda: SEAGATE ST318406LW 0109
Read write error recovery mode page:
AWRE 1 [cha: y, def: 1, sav: 1]
ARRE 1 [cha: y, def: 1, sav: 1]
PER 0 [cha: y, def: 0, sav: 0]
Caching (SBC) mode page:
WCE 1 [cha: y, def: 1, sav: 1]
RCD 0 [cha: y, def: 0, sav: 0]
Control mode page:
SWP 0 [cha: n, def: 0, sav: 0]
Informational exceptions control mode page:
EWASC 0 [cha: n, def: 0, sav: 0]
DEXCPT 0 [cha: y, def: 0, sav: 0]
MRIE 0 [cha: y, def: 0, sav: 0]
crazy@lara:/work/crazy/linux-git/linux2.6$ sudo sdparm /dev/sdb
/dev/sdb: FUJITSU MAH3182MP 0114
Read write error recovery mode page:
AWRE 0 [cha: y, def: 0, sav: 0]
ARRE 1 [cha: y, def: 1, sav: 1]
PER 0 [cha: y, def: 0, sav: 0]
Caching (SBC) mode page:
WCE 1 [cha: y, def: 1, sav: 1]
RCD 0 [cha: y, def: 0, sav: 0]
Control mode page:
SWP 0 [cha: n, def: 0, sav: 0]
Informational exceptions control mode page:
EWASC 1 [cha: y, def: 0, sav: 1]
DEXCPT 0 [cha: y, def: 1, sav: 0]
MRIE 6 [cha: y, def: 0, sav: 6]
crazy@lara:/work/crazy/linux-git/linux2.6$ sudo sdparm /dev/sdc
/dev/sdc: ATA SAMSUNG SP1203N TL10
Read write error recovery mode page:
AWRE 1
ARRE 1
PER 0
Caching (SBC) mode page:
WCE 1
RCD 0
Control mode page:
SWP 0


crazy@lara:/work/crazy/linux-git/linux2.6$ sudo hdparm /dev/sda

/dev/sda:
readonly = 0 (off)
readahead = 256 (on)
geometry = 2231/255/63, sectors = 35843670, start = 0
crazy@lara:/work/crazy/linux-git/linux2.6$ sudo hdparm /dev/sdb

/dev/sdb:
readonly = 0 (off)
readahead = 256 (on)
geometry = 2222/255/63, sectors = 35701260, start = 0
crazy@lara:/work/crazy/linux-git/linux2.6$ sudo hdparm /dev/sdc

/dev/sdc:
IO_support = 0 (default 16-bit)
readonly = 0 (off)
readahead = 256 (on)
geometry = 14596/255/63, sectors = 234493056, start = 0



And this when set to y


crazy@lara:~$ sudo hdparm /dev/sda

/dev/sda:
BLKROGET failed: Inappropriate ioctl for device
BLKRAGET failed: Inappropriate ioctl for device
BLKGETSIZE failed: Inappropriate ioctl for device
crazy@lara:~$ sudo hdparm /dev/sdb

/dev/sdb:
BLKROGET failed: Inappropriate ioctl for device
BLKRAGET failed: Inappropriate ioctl for device
BLKGETSIZE failed: Inappropriate ioctl for device
crazy@lara:~$ sudo hdparm /dev/sdc

/dev/sdc:
BLKROGET failed: Inappropriate ioctl for device
BLKRAGET failed: Inappropriate ioctl for device
BLKGETSIZE failed: Inappropriate ioctl for device
crazy@lara:~$ sudo sdparm /dev/sdc
unable to access /dev/sdc, ATA disk?
crazy@lara:~$ sudo sdparm /dev/sdb
unable to access /dev/sdb, ATA disk?
crazy@lara:~$ sudo sdparm /dev/sda
unable to access /dev/sda, ATA disk?
crazy@lara:~$ dmesg|grep bsg
[ 41.411171] Block layer SCSI generic (bsg) driver version 0.4 loaded
(major 253)



Smartd now spams the dmesg too with :

snip

....
[ 75.329927] program smartd is using a deprecated SCSI ioctl, please
convert it to SG_IO
[ 75.334267] program smartd is using a deprecated SCSI ioctl, please
convert it to SG_IO
[ 75.334396] program smartd is using a deprecated SCSI ioctl, please
convert it to SG_IO
[ 75.388284] program smartd is using a deprecated SCSI ioctl, please
convert it to SG_IO
[ 75.438146] program smartd is using a deprecated SCSI ioctl, please
convert it to SG_IO
....

dmesg|grep 'program smartd is using'|wc -l
42


Just stopped it for now :)

You can find the used config and dmesg there :

http://194.231.229.228/2.6.22-g5bae7ac9/


Gabriel



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
  2007-07-18 23:25       ` FUJITA Tomonori
  2007-07-19  0:48         ` Gabriel C
@ 2007-07-19 14:02         ` James Bottomley
  2007-07-19 14:31           ` Gabriel C
  1 sibling, 1 reply; 9+ messages in thread
From: James Bottomley @ 2007-07-19 14:02 UTC (permalink / raw)
  To: FUJITA Tomonori
  Cc: nix.or.die, linux-kernel, jens.axboe, torvalds, linux-scsi

On Thu, 2007-07-19 at 08:25 +0900, FUJITA Tomonori wrote:
> From: Gabriel C <nix.or.die@googlemail.com>
> Subject: Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
> Date: Tue, 17 Jul 2007 03:40:58 +0200
> 
> > FUJITA Tomonori wrote:
> > > From: Gabriel C <nix.or.die@googlemail.com>
> > > Subject: Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
> > > Date: Tue, 17 Jul 2007 02:44:38 +0200
> > >
> > >   
> > >> Gabriel C wrote:
> > >>     
> > >>> Hello,
> > >>>
> > >>> sdparm and hdparm are broken for me on git (
> > >>> abce891a10559343d8ac9f79b46d78afdba63a40 )
> > >>>
> > >>>
> > >>> ~$ sudo hdparm  /dev/sdc
> > >>>
> > >>> /dev/sdc:
> > >>>  BLKROGET failed: Inappropriate ioctl for device
> > >>>  BLKRAGET failed: Inappropriate ioctl for device
> > >>>  BLKGETSIZE failed: Inappropriate ioctl for device
> > >>>
> > >>>
> > >>> ~$ sudo sdparm  --all /dev/sdc
> > >>> unable to access /dev/sdc, ATA disk?
> > >>>
> > >>>   
> > >>>       
> > >> Well it is bsg , setting BLK_DEV_BSG=n fixed all this errors.
> 
> I've not tested this yet (need to find sata drives in my workplace),
> but James Bottomley told me that both works for him with bsg enabled.
> It might worth trying the latest git tree.

It certainly does work for me.  However, my ATA devices are connected to
an aic94xx SAS controller.  Although this uses libata, the ioctl path is
probably slightly different from the libata one. I assume you're using a
SATA controller?  Unfortunately I have no ability to test on a SATA
controller, but I'd suggest looking at the ioctl and REQ_BLOCK_PC paths
in libata for clues.

James



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
  2007-07-19 14:02         ` James Bottomley
@ 2007-07-19 14:31           ` Gabriel C
  2007-07-19 15:19             ` James Bottomley
  0 siblings, 1 reply; 9+ messages in thread
From: Gabriel C @ 2007-07-19 14:31 UTC (permalink / raw)
  To: James Bottomley
  Cc: FUJITA Tomonori, linux-kernel, jens.axboe, torvalds, linux-scsi

James Bottomley wrote:
> On Thu, 2007-07-19 at 08:25 +0900, FUJITA Tomonori wrote:
>   
>> From: Gabriel C <nix.or.die@googlemail.com>
>> Subject: Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
>> Date: Tue, 17 Jul 2007 03:40:58 +0200
>>
>>     
>>> FUJITA Tomonori wrote:
>>>       
>>>> From: Gabriel C <nix.or.die@googlemail.com>
>>>> Subject: Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
>>>> Date: Tue, 17 Jul 2007 02:44:38 +0200
>>>>
>>>>   
>>>>         
>>>>> Gabriel C wrote:
>>>>>     
>>>>>           
>>>>>> Hello,
>>>>>>
>>>>>> sdparm and hdparm are broken for me on git (
>>>>>> abce891a10559343d8ac9f79b46d78afdba63a40 )
>>>>>>
>>>>>>
>>>>>> ~$ sudo hdparm  /dev/sdc
>>>>>>
>>>>>> /dev/sdc:
>>>>>>  BLKROGET failed: Inappropriate ioctl for device
>>>>>>  BLKRAGET failed: Inappropriate ioctl for device
>>>>>>  BLKGETSIZE failed: Inappropriate ioctl for device
>>>>>>
>>>>>>
>>>>>> ~$ sudo sdparm  --all /dev/sdc
>>>>>> unable to access /dev/sdc, ATA disk?
>>>>>>
>>>>>>   
>>>>>>       
>>>>>>             
>>>>> Well it is bsg , setting BLK_DEV_BSG=n fixed all this errors.
>>>>>           
>> I've not tested this yet (need to find sata drives in my workplace),
>> but James Bottomley told me that both works for him with bsg enabled.
>> It might worth trying the latest git tree.
>>     
>
> It certainly does work for me.  However, my ATA devices are connected to
> an aic94xx SAS controller.  Although this uses libata, the ioctl path is
> probably slightly different from the libata one. I assume you're using a
> SATA controller?  Unfortunately I have no ability to test on a SATA
> controller, but I'd suggest looking at the ioctl and REQ_BLOCK_PC paths
> in libata for clues.
>   

No is not an SATA controller.

sda and sdb are SCSI disks connected to an Adaptec AIC-7892P U160/m
controller using the aic7xxx driver.

sdc is an ATA-7 disk connected to an IDE controller ( 82801BA IDE U100
)  using libata and the ata_piix driver.


$ lspci -nn 
00:00.0 Host bridge [0600]: Intel Corporation 82860 860 (Wombat) Chipset
Host Bridge (MCH) [8086:2531] (rev 04)
00:01.0 PCI bridge [0604]: Intel Corporation 82850 850 (Tehama) Chipset
AGP Bridge [8086:2532] (rev 04)
00:02.0 PCI bridge [0604]: Intel Corporation 82860 860 (Wombat) Chipset
AGP Bridge [8086:2533] (rev 04)
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge
[8086:244e] (rev 04)
00:1f.0 ISA bridge [0601]: Intel Corporation 82801BA ISA Bridge (LPC)
[8086:2440] (rev 04)
00:1f.1 IDE interface [0101]: Intel Corporation 82801BA IDE U100
Controller [8086:244b] (rev 04)
00:1f.2 USB Controller [0c03]: Intel Corporation 82801BA/BAM USB
Controller #1 [8086:2442] (rev 04)
00:1f.3 SMBus [0c05]: Intel Corporation 82801BA/BAM SMBus Controller
[8086:2443] (rev 04)
00:1f.4 USB Controller [0c03]: Intel Corporation 82801BA/BAM USB
Controller #1 [8086:2444] (rev 04)
00:1f.5 Multimedia audio controller [0401]: Intel Corporation
82801BA/BAM AC'97 Audio Controller [8086:2445] (rev 04)
01:00.0 VGA compatible controller [0300]: nVidia Corporation NV11
[GeForce2 MX/MX 400] [10de:0110] (rev a1)
02:1f.0 PCI bridge [0604]: Intel Corporation 82806AA PCI64 Hub PCI
Bridge [8086:1360] (rev 03)
03:00.0 PIC [0800]: Intel Corporation 82806AA PCI64 Hub Advanced
Programmable Interrupt Controller [8086:1161] (rev 01)
03:0e.0 SCSI storage controller [0100]: Adaptec AIC-7892P U160/m
[9005:008f] (rev 02)
04:0b.0 Ethernet controller [0200]: 3Com Corporation 3c905C-TX/TX-M
[Tornado] [10b7:9200] (rev 78)
04:0c.0 FireWire (IEEE 1394) [0c00]: Texas Instruments TSB12LV26
IEEE-1394 Controller (Link) [104c:8020]
04:0f.0 USB Controller [0c03]: NEC Corporation USB [1033:0035] (rev 41)
04:0f.1 USB Controller [0c03]: NEC Corporation USB [1033:0035] (rev 41)
04:0f.2 USB Controller [0c03]: NEC Corporation USB 2.0 [1033:00e0] (rev 02)


> James
>
>   


Gabriel

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
  2007-07-19 14:31           ` Gabriel C
@ 2007-07-19 15:19             ` James Bottomley
  2007-07-19 15:48               ` Gabriel C
  0 siblings, 1 reply; 9+ messages in thread
From: James Bottomley @ 2007-07-19 15:19 UTC (permalink / raw)
  To: Gabriel C; +Cc: FUJITA Tomonori, linux-kernel, jens.axboe, torvalds, linux-scsi

On Thu, 2007-07-19 at 16:31 +0200, Gabriel C wrote:
> No is not an SATA controller.
> 
> sda and sdb are SCSI disks connected to an Adaptec AIC-7892P U160/m
> controller using the aic7xxx driver.

OK, this definitely works for me, that's what my root disk is on.  I
think this isn't a kernel problem ... I think it's a udev name clash
problem.  Try the attached patch, which corrects the names:

> sdc is an ATA-7 disk connected to an IDE controller ( 82801BA IDE U100
> )  using libata and the ata_piix driver.


James

---

Index: BUILD-2.6/block/Kconfig
===================================================================
--- BUILD-2.6.orig/block/Kconfig	2007-07-18 11:34:20.000000000 -0500
+++ BUILD-2.6/block/Kconfig	2007-07-18 11:36:24.000000000 -0500
@@ -53,7 +53,7 @@ endif # BLOCK
 
 config BLK_DEV_BSG
 	bool "Block layer SG support v4 (EXPERIMENTAL)"
-	depends on (SCSI=y) && EXPERIMENTAL
+ 	depends on EXPERIMENTAL
 	---help---
 	Saying Y here will enable generic SG (SCSI generic) v4 support
 	for any block device.
Index: BUILD-2.6/block/bsg.c
===================================================================
--- BUILD-2.6.orig/block/bsg.c	2007-07-18 11:34:20.000000000 -0500
+++ BUILD-2.6/block/bsg.c	2007-07-18 11:36:24.000000000 -0500
@@ -1009,29 +1009,6 @@ err:
 }
 EXPORT_SYMBOL_GPL(bsg_register_queue);
 
-static int bsg_add(struct class_device *cl_dev, struct class_interface *cl_intf)
-{
-	int ret;
-	struct scsi_device *sdp = to_scsi_device(cl_dev->dev);
-	struct request_queue *rq = sdp->request_queue;
-
-	if (rq->kobj.parent)
-		ret = bsg_register_queue(rq, kobject_name(rq->kobj.parent));
-	else
-		ret = bsg_register_queue(rq, kobject_name(&sdp->sdev_gendev.kobj));
-	return ret;
-}
-
-static void bsg_remove(struct class_device *cl_dev, struct class_interface *cl_intf)
-{
-	bsg_unregister_queue(to_scsi_device(cl_dev->dev)->request_queue);
-}
-
-static struct class_interface bsg_intf = {
-	.add	= bsg_add,
-	.remove	= bsg_remove,
-};
-
 static struct cdev bsg_cdev = {
 	.kobj   = {.name = "bsg", },
 	.owner  = THIS_MODULE,
@@ -1069,16 +1046,9 @@ static int __init bsg_init(void)
 	if (ret)
 		goto unregister_chrdev;
 
-	ret = scsi_register_interface(&bsg_intf);
-	if (ret)
-		goto remove_cdev;
-
 	printk(KERN_INFO BSG_DESCRIPTION " version " BSG_VERSION
 	       " loaded (major %d)\n", bsg_major);
 	return 0;
-remove_cdev:
-	printk(KERN_ERR "bsg: failed register scsi interface %d\n", ret);
-	cdev_del(&bsg_cdev);
 unregister_chrdev:
 	unregister_chrdev_region(MKDEV(bsg_major, 0), BSG_MAX_DEVS);
 destroy_bsg_class:
Index: BUILD-2.6/drivers/scsi/scsi_sysfs.c
===================================================================
--- BUILD-2.6.orig/drivers/scsi/scsi_sysfs.c	2007-07-18 11:36:02.000000000 -0500
+++ BUILD-2.6/drivers/scsi/scsi_sysfs.c	2007-07-19 10:10:50.000000000 -0500
@@ -715,6 +715,7 @@ static int attr_add(struct device *dev, 
 int scsi_sysfs_add_sdev(struct scsi_device *sdev)
 {
 	int error, i;
+	struct request_queue *rq = sdev->request_queue;
 
 	if ((error = scsi_device_set_state(sdev, SDEV_RUNNING)) != 0)
 		return error;
@@ -734,6 +735,17 @@ int scsi_sysfs_add_sdev(struct scsi_devi
 	/* take a reference for the sdev_classdev; this is
 	 * released by the sdev_class .release */
 	get_device(&sdev->sdev_gendev);
+
+	error = bsg_register_queue(rq, sdev->sdev_gendev.bus_id);
+
+	if (error)
+		sdev_printk(KERN_INFO, sdev,
+			    "Failed to register bsg queue, errno=%d\n", error);
+
+	/* we're treating error on bsg register as non-fatal, so pretend
+	 * nothing went wrong */
+	error = 0;
+
 	if (sdev->host->hostt->sdev_attrs) {
 		for (i = 0; sdev->host->hostt->sdev_attrs[i]; i++) {
 			error = attr_add(&sdev->sdev_gendev,
@@ -780,6 +792,7 @@ void __scsi_remove_device(struct scsi_de
 	if (scsi_device_set_state(sdev, SDEV_CANCEL) != 0)
 		return;
 
+	bsg_unregister_queue(sdev->request_queue);
 	class_device_unregister(&sdev->sdev_classdev);
 	transport_remove_device(dev);
 	device_del(dev);




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Someone ( bsg merge ? ) broke {sd,hd}parm on current git
  2007-07-19 15:19             ` James Bottomley
@ 2007-07-19 15:48               ` Gabriel C
  0 siblings, 0 replies; 9+ messages in thread
From: Gabriel C @ 2007-07-19 15:48 UTC (permalink / raw)
  To: James Bottomley
  Cc: FUJITA Tomonori, linux-kernel, jens.axboe, torvalds, linux-scsi

James Bottomley wrote:
> On Thu, 2007-07-19 at 16:31 +0200, Gabriel C wrote:
>   
>> No is not an SATA controller.
>>
>> sda and sdb are SCSI disks connected to an Adaptec AIC-7892P U160/m
>> controller using the aic7xxx driver.
>>     
>
> OK, this definitely works for me, that's what my root disk is on.  I
> think this isn't a kernel problem ... I think it's a udev name clash
> problem.  Try the attached patch, which corrects the names:
>   

Thx, your patch fixes the problem for me.

>   
>> sdc is an ATA-7 disk connected to an IDE controller ( 82801BA IDE U100
>> )  using libata and the ata_piix driver.
>>     
>
>
> James
>
> ---
>
> Index: BUILD-2.6/block/Kconfig
> ===================================================================
> --- BUILD-2.6.orig/block/Kconfig	2007-07-18 11:34:20.000000000 -0500
> +++ BUILD-2.6/block/Kconfig	2007-07-18 11:36:24.000000000 -0500
> @@ -53,7 +53,7 @@ endif # BLOCK
>  
>  config BLK_DEV_BSG
>  	bool "Block layer SG support v4 (EXPERIMENTAL)"
> -	depends on (SCSI=y) && EXPERIMENTAL
> + 	depends on EXPERIMENTAL
>  	---help---
>  	Saying Y here will enable generic SG (SCSI generic) v4 support
>  	for any block device.
> Index: BUILD-2.6/block/bsg.c
> ===================================================================
> --- BUILD-2.6.orig/block/bsg.c	2007-07-18 11:34:20.000000000 -0500
> +++ BUILD-2.6/block/bsg.c	2007-07-18 11:36:24.000000000 -0500
> @@ -1009,29 +1009,6 @@ err:
>  }
>  EXPORT_SYMBOL_GPL(bsg_register_queue);
>  
> -static int bsg_add(struct class_device *cl_dev, struct class_interface *cl_intf)
> -{
> -	int ret;
> -	struct scsi_device *sdp = to_scsi_device(cl_dev->dev);
> -	struct request_queue *rq = sdp->request_queue;
> -
> -	if (rq->kobj.parent)
> -		ret = bsg_register_queue(rq, kobject_name(rq->kobj.parent));
> -	else
> -		ret = bsg_register_queue(rq, kobject_name(&sdp->sdev_gendev.kobj));
> -	return ret;
> -}
> -
> -static void bsg_remove(struct class_device *cl_dev, struct class_interface *cl_intf)
> -{
> -	bsg_unregister_queue(to_scsi_device(cl_dev->dev)->request_queue);
> -}
> -
> -static struct class_interface bsg_intf = {
> -	.add	= bsg_add,
> -	.remove	= bsg_remove,
> -};
> -
>  static struct cdev bsg_cdev = {
>  	.kobj   = {.name = "bsg", },
>  	.owner  = THIS_MODULE,
> @@ -1069,16 +1046,9 @@ static int __init bsg_init(void)
>  	if (ret)
>  		goto unregister_chrdev;
>  
> -	ret = scsi_register_interface(&bsg_intf);
> -	if (ret)
> -		goto remove_cdev;
> -
>  	printk(KERN_INFO BSG_DESCRIPTION " version " BSG_VERSION
>  	       " loaded (major %d)\n", bsg_major);
>  	return 0;
> -remove_cdev:
> -	printk(KERN_ERR "bsg: failed register scsi interface %d\n", ret);
> -	cdev_del(&bsg_cdev);
>  unregister_chrdev:
>  	unregister_chrdev_region(MKDEV(bsg_major, 0), BSG_MAX_DEVS);
>  destroy_bsg_class:
> Index: BUILD-2.6/drivers/scsi/scsi_sysfs.c
> ===================================================================
> --- BUILD-2.6.orig/drivers/scsi/scsi_sysfs.c	2007-07-18 11:36:02.000000000 -0500
> +++ BUILD-2.6/drivers/scsi/scsi_sysfs.c	2007-07-19 10:10:50.000000000 -0500
> @@ -715,6 +715,7 @@ static int attr_add(struct device *dev, 
>  int scsi_sysfs_add_sdev(struct scsi_device *sdev)
>  {
>  	int error, i;
> +	struct request_queue *rq = sdev->request_queue;
>  
>  	if ((error = scsi_device_set_state(sdev, SDEV_RUNNING)) != 0)
>  		return error;
> @@ -734,6 +735,17 @@ int scsi_sysfs_add_sdev(struct scsi_devi
>  	/* take a reference for the sdev_classdev; this is
>  	 * released by the sdev_class .release */
>  	get_device(&sdev->sdev_gendev);
> +
> +	error = bsg_register_queue(rq, sdev->sdev_gendev.bus_id);
> +
> +	if (error)
> +		sdev_printk(KERN_INFO, sdev,
> +			    "Failed to register bsg queue, errno=%d\n", error);
> +
> +	/* we're treating error on bsg register as non-fatal, so pretend
> +	 * nothing went wrong */
> +	error = 0;
> +
>  	if (sdev->host->hostt->sdev_attrs) {
>  		for (i = 0; sdev->host->hostt->sdev_attrs[i]; i++) {
>  			error = attr_add(&sdev->sdev_gendev,
> @@ -780,6 +792,7 @@ void __scsi_remove_device(struct scsi_de
>  	if (scsi_device_set_state(sdev, SDEV_CANCEL) != 0)
>  		return;
>  
> +	bsg_unregister_queue(sdev->request_queue);
>  	class_device_unregister(&sdev->sdev_classdev);
>  	transport_remove_device(dev);
>  	device_del(dev);
>
>
>
>
>   


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2007-07-19 15:50 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <469BD9C8.4000808@googlemail.com>
2007-07-17  0:44 ` Someone ( bsg merge ? ) broke {sd,hd}parm on current git Gabriel C
2007-07-17  1:09   ` FUJITA Tomonori
2007-07-17  1:40     ` Gabriel C
2007-07-18 23:25       ` FUJITA Tomonori
2007-07-19  0:48         ` Gabriel C
2007-07-19 14:02         ` James Bottomley
2007-07-19 14:31           ` Gabriel C
2007-07-19 15:19             ` James Bottomley
2007-07-19 15:48               ` Gabriel C

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).