Bug 287221 - cciss: "out of memory" message on boot
Summary: cciss: "out of memory" message on boot
Keywords:
Status: CLOSED DUPLICATE of bug 249104
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel
Version: 5.1
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: Prarit Bhargava
QA Contact: Martin Jenner
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-09-12 03:38 UTC by Masaki MAENO
Modified: 2007-11-30 22:07 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-09-13 11:37:13 UTC
Target Upstream Version:
Embargoed:


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

Description Masaki MAENO 2007-09-12 03:38:19 UTC
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 12:43:08 UTC
Masaki, can you attach the full system boot log here?

Thanks,

P.

Comment 2 Masaki MAENO 2007-09-13 00:55:01 UTC
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-13 00:56:08 UTC
Created attachment 194161 [details]
boot messages

Please check the boot message.

Comment 4 Masaki MAENO 2007-09-13 01:00:50 UTC
Created attachment 194171 [details]
kmalloc forgotten at cciss_revalidate()  fix patch

Comment 5 Masaki MAENO 2007-09-13 01:10:17 UTC
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 10:08:23 UTC

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

Comment 7 Masaki MAENO 2007-09-13 10:18:01 UTC
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 11:37:13 UTC
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.