[Defy Android Development] wskelly:
I thought the same thing, must be some corruption happening somewhere. Here is what I've done over the past few evenings:

1. Diff the dmesg outputs: Quarx 11/18 (boots flawlessly) vs. Quarx 11/18 + with your kernel

2. Make changes as necessary, enabling or disabling features in the kernel, until the dmesg outputs were basically identical

3. Getting no success there I decided to try a brute force approach, just build a kernel way in the past, see if it works, and then continue to bisect the difference until I find the exact change that started causing the problem. Here is what that list looks like:

a9eeb07 More reverts
d9cde07 Revert "usbnet: disable spams"
90d70ce Updated config again for testing
29e5062 Reverted mapphone_defconfig
b357355 init variable in mapphone, also change config again
90b77aa Added debuggin info to panel module
b105162 Revert "Debug audio driver"
b4357176 put musb hdrc back
1c1b91f Revert some things
684b41d Debug audio driver
36e5009 Revert "Tried to load some OTG-drivers from 2.6.29"
54d0fd5 Deleted unused files
d20ff7d crypto: hash - Remove legacy hash/digest code
68aae31 Merge branch '2.6.32' of github.com:Quarx2k/jordan-kernel into 2.6.32
35ab40f OMAP/DSS2: Disable devices that failed to resume. Make multiple suspends and resume work correctly
ca4db01 Revert "disable more drivers"
a5a56b2 Revert "fix reboot on shutdown"
e8ecdf2 Disbaled fsync by default

!! NOT OK !! 1dbc2fe arm/crypto: Add optimized AES and SHA1 routines

4679ac5 arm: spinlock: use ticket algorithm for ARMv6+ locking implementation
4e0d0af sched: disable GENTLE_FAIR_SLEEPERS
4a82745 Merge branch '2.6.32' of github.com:Quarx2k/jordan-kernel into 2.6.32
6c42b2f Fix compiler warnings
9f4b845 Added FSync Control v1 by Ezekeel
f573429 Enable Fsync
9d846e1 Revert "Double the DAC fifo size to 16384 (to prevent audio drop-outs)"
21f510d rename lmb to memblock, conflicts needs fix
6af1c97 Revert writeback: fix WB_SYNC_NONE writeback from umount
cc97a0b writeback: fix mixed up arguments to bdi_start_writeback()
23cfffb writeback: fix problem with CONFIG_BLOCK compilation
aa2b157 writeback: fix WB_SYNC_NONE writeback from umount
af35cf6 writeback: laptop-mode: Make flushes per-device
6085577 writeback: remove unused nonblocking and congestion checks
0272217 mm: vmscan: do not writeback filesystem pages in direct reclaim

!! NOT OK !! 8aff006 Revert "Tried to load one more cpu_freq"

f3fd949 Tried to load one more cpu_freq
cef8726 Revert "Stupid mistake / Revert"
987bdbe Stupid mistake / Revert
c6599ba mm: define PAGE_MAPPING_FLAGS
9472ff4 Enabled ext4 file system driver for ext2/ext3
a7c4e51 [PATCH]: mm: vmscan: factor out page reference checks
4a0b930 ext4: Use ext4 file system driver for ext2/ext3 file system mounts

!! NOT OK !! (checked twice) 15d2403 Some kmemleak fixes

751eb6d mm: slab: cpumask avoid deprecated function
8f066ab Introduced the new jhash implementation
911fbad mm: slab: fixes and kmemleak
4136a35 mm: slab: Fix no callsite ifndef CONFIG_KMEMTRACE

!! NOT OK !! f01cdb9 mm: slab: enabled tracing and reapplied previous patches

a4b8fe1 Merge git://github.com/Quarx2k/jordan-kernel into 2.6.32
c13f96b Reverted vmscan changes
e9d4c28 Fixed unstable things

!! NOT OK !! -- check again?? c061d4e Revert "Update jHash to v3"

OK befbbb8 fix coordinates of touch buttons for bravo

80e9894 lib: sha1: quiet sparse noise about symbol not declared
e85e4c0 mm: slab: pass the correct pointer to kmemleak_erase()
619723e lib: sha1: use the git implementation of SHA-1
1e76766 mm: slab: stop calling kmemleak_erase() unconditionally
d1ac377 mm: slab: Fix unlikely() annotation in __cache_alloc_node()
daac98a android: ram_console debugging test
0d90cf9 mm: vmscan: kill hibernation specific reclaim logic and unify it
39f0cbd mm: vmscan: stop kswapd waiting on congestion when the min watermark is not being met
364325c mm: vmscan: have kswapd sleep for a short interval and double check it should be asleep
4964156 mm: clear node in N_HIGH_MEMORY and stop kswapd when all memory is of…
f045379 lib: xz: updated compression a bit
b9d25db lib: sections: fix const sections for crc32 table
86aec38 lib: crc32: fix unused variables warnings and add self-test code
365d5c6 Merge git://github.com/Quarx2k/jordan-kernel into 2.6.32
234e991 lib: crc32: bolt on crc32c
87e8865 lib: crc32: add slice-by-8 algorithm to existing code
ebe9abd lib: crc32: make CRC_*_BITS definition correspond to actual bit counts
0bc8d4b lib: crc32: fix mixing of endian-specific types
f95898b lib: crc32: miscellaneous cleanups
1e8de18 lib: crc32: simplify unit test code
439bf99 lib: crc32: optimize inner loop
c67ade7 fix coordinates of touch buttons for bravo
2eb3ea8 Reverted some unuseful things
47ce5b9 Merge git://github.com/Quarx2k/jordan-kernel into 2.6.32
1ef1267 add full support kobe camera, fix ifdefs
e307605 dspbridge: unload dlls on node create failure
04e6448 Some changes to BFS
10f4cd4 Revert "Revert "Revert "Updated BFS to v330"""
9e02e39 Added things i forgot

OK 307d3bf Merge git://github.com/Quarx2k/jordan-kernel into 2.6.32

6b7a622 Fix config
cf219b0 fix reboot on shutdown
4cc7898 Revert "Revert "Updated BFS to v330""
474145d Revert "Updated BFS to v330"
3035f02 Merged with Quarx
d6764d4 .
70b1fb5 disable more drivers, increase fbs to

So, it is not enough to just revert the jhash change, at least what I saw last night. I had to copy the jhash.h file from the old implementation, checkout the latest revision, and then insert the old jhash file. Building this didn't fix the problem with all of the other changes (if I recall correctly) but it was again late and I may have to try it again. I also tried reverting some of the other hash changes but didn't get anywhere with that.

At the moment I've checked out revision befbbb8, this one boots and reboots fine. Starting with the jhash.h change is when the black screen issue starts. I double checked this and I'm using befbbb8 right now.

My file systems are unchanged from 'stock' so here is what I have:

# mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/mmcblk1p21 /system ext3 ro,nodev,noatime,nodiratime,data=ordered 0 0
/dev/block/mmcblk1p24 /cache ext4 rw,nodev,noatime,nodiratime,barrier=0,data=ordered 0 0
/dev/block/mmcblk1p25 /data ext4 rw,nodev,noatime,nodiratime,barrier=0,data=ordered 0 0
/dev/block/loop7 /pds ext3 rw,nosuid,nodev,noatime,nodiratime,barrier=1,data=ordered 0 0
ramfs /tmp ramfs rw,relatime,relatime 0 0
/dev/block/vold/179:1 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:1 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
/dev/block/dm-0 /mnt/asec/com.keramidas.TitaniumBackupPro-1 ext4 ro,dirsync,nosuid,nodev,noatime,barrier=1,data=writeback 0 0
/dev/block/dm-1 /mnt/asec/net.dinglisch.android.taskerm-1 ext4 ro,dirsync,nosuid,nodev,noatime,barrier=1,data=writeback 0 0

I agree on some filesystem corruption somewhere, but also some kernel corruption or possibly some corruption of the file system module. Here is why I think so:

1. I decided to have a stable environment for kernel testing. So I decided on Quarx 11/18. With this environment I would push the kernel via adb, and reboot.

2. If I got a black screen, I would put the Quarx kernel back and reboot.

3. After much testing I could get the phone into a situation where it would not reboot, even with the Quarx kernel. In this case it is necessary to WIPE DATA and reinstall the entire 11/18 zip package (format /data, format /cache, install system.img, etc.) This kind of behavior tells me that there *is* some file system corruption happening.

4. I also believe that one of the changes internal to the kernel is causing some corruption, this is why I could put the Quarx kernel back and have the phone boot normally in most cases.

There were fsck notices in the dmesg outputs with the Quarx kernel and with your kernel. I basically ignored these during my testing as possibly normal artifacts of shutdown. Perhaps these were smoking guns however but without the brute force method I never would've found jhash.h. :)