--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/top/patches/02.hash-c.patch Sun Mar 13 16:12:25 2011 -0700
@@ -0,0 +1,79 @@
+#
+# This patch was included to address
+# 6893978 top segfaults with high thread ids
+#
+*** top-3.8beta1/hash.c-old Thu Jul 2 15:30:55 2009
+--- top-3.8beta1/hash.c Thu Jul 2 15:48:39 2009
+***************
+*** 1354,1360 ****
+ hi->value = value;
+
+ /* hash to the bucket */
+! bucket = &(ht->buckets[((key.k_thr * 10000 + key.k_pid) % ht->num_buckets)]);
+
+ /* walk the list to make sure we do not have a duplicate */
+ ll = &(bucket->list);
+--- 1354,1360 ----
+ hi->value = value;
+
+ /* hash to the bucket */
+! bucket = &(ht->buckets[(((unsigned long)(key.k_thr) * 10000U + (unsigned long)(key.k_pid)) % ht->num_buckets)]);
+
+ /* walk the list to make sure we do not have a duplicate */
+ ll = &(bucket->list);
+***************
+*** 1408,1414 ****
+ pidthr_t k1;
+
+ /* find the bucket */
+! bucket = &(ht->buckets[((key.k_thr * 10000 + key.k_pid) % ht->num_buckets)]);
+
+ /* walk the list until we find the existing item */
+ ll = &(bucket->list);
+--- 1408,1414 ----
+ pidthr_t k1;
+
+ /* find the bucket */
+! bucket = &(ht->buckets[(((unsigned long)(key.k_thr) * 10000U + (unsigned long)(key.k_pid)) % ht->num_buckets)]);
+
+ /* walk the list until we find the existing item */
+ ll = &(bucket->list);
+***************
+*** 1460,1466 ****
+ pidthr_t k1;
+
+ result = NULL;
+! if ((bucket = &(ht->buckets[((key.k_thr * 10000 + key.k_pid) % ht->num_buckets)])) != NULL)
+ {
+ ll = &(bucket->list);
+ li = LL_FIRST(ll);
+--- 1460,1466 ----
+ pidthr_t k1;
+
+ result = NULL;
+! if ((bucket = &(ht->buckets[(((unsigned long)(key.k_thr) * 10000U + (unsigned long)(key.k_pid)) % ht->num_buckets)])) != NULL)
+ {
+ ll = &(bucket->list);
+ li = LL_FIRST(ll);
+***************
+*** 1499,1505 ****
+ pidthr_t k1;
+
+ result = NULL;
+! if ((bucket = &(ht->buckets[((key.k_thr * 10000 + key.k_pid) % ht->num_buckets)])) != NULL)
+ {
+ ll = &(bucket->list);
+ li = LL_FIRST(ll);
+--- 1499,1505 ----
+ pidthr_t k1;
+
+ result = NULL;
+! if ((bucket = &(ht->buckets[(((unsigned long)(key.k_thr) * 10000U + (unsigned long)(key.k_pid)) % ht->num_buckets)])) != NULL)
+ {
+ ll = &(bucket->list);
+ li = LL_FIRST(ll);
+
+
+
+
+