All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH][1/5] Improve the IDE HD geometry auto detection algorithm.
@ 2005-07-01 18:55 Arun Sharma
  0 siblings, 0 replies; only message in thread
From: Arun Sharma @ 2005-07-01 18:55 UTC (permalink / raw)
  To: Ian Pratt, Keir Fraser; +Cc: xen-devel

Improve the IDE HD geometry auto detection algorithm.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Asit K Mallick <asit.k.mallick@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@intel.com>

diff -r 5bde59907bba -r a7b2638827fa tools/ioemu/hw/ide.c
--- a/tools/ioemu/hw/ide.c	Thu Jun 30 18:59:08 2005
+++ b/tools/ioemu/hw/ide.c	Thu Jun 30 19:25:19 2005
@@ -1850,7 +1850,11 @@
                a cylinder boundary */
             s->heads = p->end_head + 1;
             s->sectors = p->end_sector & 63;
+            if (s->sectors == 0)
+                continue;
             s->cylinders = s->nb_sectors / (s->heads * s->sectors);
+            if (s->cylinders < 1 || s->cylinders > 16383)
+                continue;
 #if 0
             printf("guessed partition: CHS=%d %d %d\n", 
                    s->cylinders, s->heads, s->sectors);
@@ -1884,8 +1888,12 @@
                 s->sectors = secs;
             } else {
                 ide_guess_geometry(s);
-                if (s->cylinders == 0) {
-                    /* if no geometry, use a LBA compatible one */
+
+                /* if heads > 16, it means that a BIOS LBA
+                   translation was active, so the default
+                   hardware geometry is OK */
+                if ((s->heads > 16) || (s->cylinders == 0)) {
+                    /* if no geometry, use a standard physical disk geometry */
                     cylinders = nb_sectors / (16 * 63);
                     if (cylinders > 16383)
                         cylinders = 16383;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-07-01 18:55 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-01 18:55 [PATCH][1/5] Improve the IDE HD geometry auto detection algorithm Arun Sharma

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.