Bug 287221 - cciss: "out of memory" message on boot
cciss: "out of memory" message on boot
Status: CLOSED DUPLICATE of bug 249104
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel (Show other bugs)
5.1
All Linux
medium Severity medium
: ---
: ---
Assigned To: Prarit Bhargava
Martin Jenner
: Reopened
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2007-09-11 23:38 EDT by Masaki MAENO
Modified: 2007-11-30 17:07 EST (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2007-09-13 07:37:13 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
boot messages (34.73 KB, application/octet-stream)
2007-09-12 20:56 EDT, Masaki MAENO
no flags Details
kmalloc forgotten at cciss_revalidate() fix patch (805 bytes, patch)
2007-09-12 21:00 EDT, Masaki MAENO
no flags Details | Diff

  None (edit)
Description Masaki MAENO 2007-09-11 23:38:19 EDT
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)
Comment 1 Prarit Bhargava 2007-09-12 08:43:08 EDT
Masaki, can you attach the full system boot log here?

Thanks,

P.
Comment 2 Masaki MAENO 2007-09-12 20:55:01 EDT
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
Comment 3 Masaki MAENO 2007-09-12 20:56:08 EDT
Created attachment 194161 [details]
boot messages

Please check the boot message.
Comment 4 Masaki MAENO 2007-09-12 21:00:50 EDT
Created attachment 194171 [details]
kmalloc forgotten at cciss_revalidate()  fix patch
Comment 5 Masaki MAENO 2007-09-12 21:10:17 EDT
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.
Comment 6 Prarit Bhargava 2007-09-13 06:08:23 EDT

*** This bug has been marked as a duplicate of 249104 ***
Comment 7 Masaki MAENO 2007-09-13 06:18:01 EDT
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.
Comment 8 Prarit Bhargava 2007-09-13 07:37:13 EDT
This has been fixed.  Please do not reopen this bug again.

P.

*** This bug has been marked as a duplicate of 249104 ***

Note You need to log in before you can comment on or make changes to this bug.