Description of problem: A message of "out of message" is out on boot (2.6.18-36.el5). The system starts without trouble, but this message is unpleasant for everyone. HP CISS Driver is v 3.6.16-RH1 in RHEL5.1beta. But, the message is not out for HP CISS Driver (v 3.6.14-RH1) in RHEL5.0. Please confirm its problem to HP Engineer. How reproducible: Boot by cciss disk. Steps to Reproduce: 1. boot Actual results: # dmesg ... SCSI subsystem initialized HP CISS Driver (v 3.6.16-RH1) ACPI: PCI Interrupt 0000:06:00.0[A] -> GSI 16 (level, low) -> IRQ 169 cciss0: <0x3230> at PCI 0000:06:00.0 IRQ 114 using DAC blocks= 860051248 block_size= 512 heads= 255, sectors= 32, cylinders= 860051249 cciss: out of memory <<<<<<< driver/block/cciss.c:cciss_revalidate() size_buff is NULL (cciss driver code changed.) cciss/c0d0: p1 p2 p3 p4 < p5 p6 p7 p8 p9 p10 > usb 5-1: new full speed USB device using uhci_hcd and address 2 libata version 2.21 loaded. usb 5-1: configuration #1 chosen from 1 choice ... Expected results: The following message is not output. ... cciss: out of memory <<<<<<< driver/block/cciss.c:cciss_revalidate() size_buff is NULL (cciss driver code changed.) ... Additional info: Hardware: DL360G5 (Firmware v7.80)
Masaki, can you attach the full system boot log here? Thanks, P.
I have understood the problem. The problem is very simple bug (kmalloc() forgotten). Please refer to here. https://bugzilla.redhat.com/show_bug.cgi?id=285851 Comment#2, #3
Created attachment 194161 [details] boot messages Please check the boot message.
Created attachment 194171 [details] kmalloc forgotten at cciss_revalidate() fix patch
This bug is a simple and unbelievable, and serious. I think that RedHat should promptly correct it. Problem part: inq_buff (InquiryData_struct's pointer) is always NULL. ====== 2002 static int cciss_revalidate(struct gendisk *disk) 2003 { 2004 ctlr_info_t *h = get_host(disk); 2005 drive_info_struct *drv = get_drv(disk); 2006 int logvol; 2007 int FOUND = 0; 2008 unsigned int block_size; 2009 sector_t total_size; 2010 InquiryData_struct *inq_buff = NULL; 2011 2012 for (logvol = 0; logvol < CISS_MAX_LUN; logvol++) { 2013 if (h->drv[logvol].LunID == drv->LunID) { 2014 FOUND = 1; 2015 break; 2016 } 2017 } 2018 2019 if (!FOUND) 2020 return 1; 2021 2022 if (inq_buff == NULL) { <<< inq_buff is always NULL 2023 printk(KERN_WARNING "cciss: out of memory\n"); <<< message output 2024 return 1; 2025 } 2026 if (h->cciss_read == CCISS_READ_10) { 2027 cciss_read_capacity(h->ctlr, logvol, 1, 2028 &total_size, &block_size); 2029 } else { 2030 cciss_read_capacity_16(h->ctlr, logvol, 1, 2031 &total_size, &block_size); 2032 } 2033 cciss_geometry_inquiry(h->ctlr, logvol, 1, total_size, block_size, 2034 inq_buff, drv); 2035 blk_queue_hardsect_size(drv->queue, drv->block_size); 2036 set_capacity(disk, drv->nr_blocks); 2037 2038 kfree(inq_buff); 2039 return 0; 2040 } ====== Problem effect: Even if it changes the geometry on cciss-disk, it is not actually updated.
*** This bug has been marked as a duplicate of 249104 ***
I do not understand whether this problem was fixed, bacause of "You are not authorized to access bug #249104." Prarit, please tell me whether to have been fixed at RHEL5.1. Thanks.
This has been fixed. Please do not reopen this bug again. P. *** This bug has been marked as a duplicate of 249104 ***