Skip to contentSkip to conversation

aic7xxx 6.1.10 and 2.4.4-pre1

DISCUSSION [email protected] 3 participants 4 messages Apr 7, 2001 – Apr 8, 2001

lore
Share & tools
lore
#0 lore raw

I had tried 6.1.8 + 2.4.3 and had problems which included messages like 'aic7xxx_abort returns 8194' and machine froze up shortly after X started. This on redhat 7.0. Sorry but since I was unable to even boot back the prev kernel (2.4.0) I cant provide any more detailed information. I have been following to see a few other folks have had some issues with scsi as well.

I have 2 lvd scsi disks and one ide, AH 2940U2 - top of lilo included below - and bios boot order is scsi first.

So I started again - installed redhat 7.0.9.
took 2.4.4-pre1 and patched it with
linux-aic7xxx-6.1.10-2.4.3.patch

Patch applied cleanly but when I compile it complains a little:

In file included from aic7xxx_linux.c:131:
aic7xxx_osm.h: In function `ahc_pci_read_config':
aic7xxx_osm.h:862: warning: control reaches end of non-void function

(for several .c files but always refers to 'ahc_pci_read_config')

In file included from ... include/linux/raid/md.h:50,
from init/main.c:24: ..include/linux/raid/md_k.h: In function `pers_to_level':
raid/md_k.h:39: warning: control reaches end of non-void function

Do I need to be concerned here? I dont whether the presumed missing return is a bad thing or not.

I have not yet tried to boot this kernel.

Also

# lilo.conf
boot=/dev/sda
disk=/dev/sda
     bios=0x80
disk=/dev/sdb
     bios=0x81
disk=/dev/hda
     bios=0x82
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
message=/boot/message
lba32
default=linux

...

#1 lore raw
Quoted 11 lines

So I started again - installed redhat 7.0.9.
took 2.4.4-pre1 and patched it with
linux-aic7xxx-6.1.10-2.4.3.patch

Patch applied cleanly but when I compile it complains a little:

In file included from aic7xxx_linux.c:131:
aic7xxx_osm.h: In function `ahc_pci_read_config':
aic7xxx_osm.h:862: warning: control reaches end of non-void function

(for several .c files but always refers to 'ahc_pci_read_config')

This is because panic() is not marked as a "no return" function. So, GCC compains that, in the panic() case, we don't return a value from this particular function. Since we will never return in that case, it is, at least in the aic7xxx driver, a harmless warning.

--
Justin

#2 lore raw
In reply to [email protected]
Quoted 6 lines · On 04.08 Justin T. Gibbs wrote:
Quoted 4 lines

In file included from aic7xxx_linux.c:131:
aic7xxx_osm.h: In function `ahc_pci_read_config':
aic7xxx_osm.h:862: warning: control reaches end of non-void function

This is because panic() is not marked as a "no return" function. So,

linux/include/linux/kernel.h +38:

# define NORET_TYPE    /**/
# define ATTRIB_NORET  __attribute__((noreturn))
# define NORET_AND     noreturn,
..
NORET_TYPE void panic(const char * fmt, ...)
    __attribute__ ((NORET_AND format (printf, 1, 2)));
                    ^^^^^^^^^

Similar cases, compare include/linux/raid/md_k.h:pers_to_level() in 2.4.3 and 2.4.3-ac3.

Signature · 4 lines
J.A. Magallon                                          #  Let the source
mailto:[email protected]                              #  be with you, Luke... 

Linux werewolf 2.4.3-ac3 #1 SMP Thu Apr 5 00:28:45 CEST 2001 i686
#3 lore raw
Quoted 6 lines

NORET_TYPE void panic(const char * fmt, ...)

   __attribute__ ((NORET_AND format (printf, 1, 2)));
                   ^^^^^^^^^

Similar cases, compare include/linux/raid/md_k.h:pers_to_level() in 2.4.3 and 2.4.3-ac3.

Then gcc is not honoring the attribute. The only way for that function to not return with a value is in the panic case and that cannot happen.

--
Justin