Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 23 Sep 2009 17:02:14 +0000 (10:02 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 23 Sep 2009 17:02:14 +0000 (10:02 -0700)
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (22 commits)
  [S390] Update default configuration.
  [S390] hibernate: Do real CPU swap at resume time
  [S390] dasd: tolerate devices that have no feature codes
  [S390] zcrypt: Do not add/remove devices in s/r callbacks
  [S390] hibernate: make sure pfn_is_nosave handles lowcore pages
  [S390] smp: introduce LC_ORDER and simplify lowcore handling
  [S390] ptrace: use common code for simple peek/poke operations
  [S390] fix disabled_wait inline assembly clobber list
  [S390] Change kernel_page_present coding style.
  [S390] hibernation: reset system after resume
  [S390] hibernation: fix guest page hinting related crash
  [S390] Get rid of init_module/delete_module compat functions.
  [S390] Convert sys_execve to function with parameters.
  [S390] Convert sys_clone to function with parameters.
  [S390] qdio: change state of all primed input buffers
  [S390] qdio: reduce per device debug messages
  [S390] cio: introduce consistent subchannel scanning
  [S390] cio: idset use actual number of ssids
  [S390] cio: dont kfree vmalloced memory
  [S390] cio: introduce css_settle
  ...

1  2 
drivers/s390/block/dasd_eckd.c

index bd9fe2e36dce54f46a07f92a444c476142bcda4d,614813f692ecaac08c31eeeba6c35743351d7156..ab352175558885861ab3426dd8a3e921ec67bab6
@@@ -706,7 -706,7 +706,7 @@@ static int dasd_eckd_generate_uid(struc
               sizeof(uid->serial) - 1);
        EBCASC(uid->serial, sizeof(uid->serial) - 1);
        uid->ssid = private->gneq->subsystemID;
 -      uid->real_unit_addr = private->ned->unit_addr;;
 +      uid->real_unit_addr = private->ned->unit_addr;
        if (private->sneq) {
                uid->type = private->sneq->sua_flags;
                if (uid->type == UA_BASE_PAV_ALIAS)
@@@ -935,6 -935,7 +935,7 @@@ static int dasd_eckd_read_features(stru
        struct dasd_eckd_private *private;
  
        private = (struct dasd_eckd_private *) device->private;
+       memset(&private->features, 0, sizeof(struct dasd_rssd_features));
        cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */,
                                   (sizeof(struct dasd_psf_prssd_data) +
                                    sizeof(struct dasd_rssd_features)),
                features = (struct dasd_rssd_features *) (prssdp + 1);
                memcpy(&private->features, features,
                       sizeof(struct dasd_rssd_features));
-       }
+       } else
+               dev_warn(&device->cdev->dev, "Reading device feature codes"
+                        " failed with rc=%d\n", rc);
        dasd_sfree_request(cqr, cqr->memdev);
        return rc;
  }
@@@ -1144,9 -1147,7 +1147,7 @@@ dasd_eckd_check_characteristics(struct 
        }
  
        /* Read Feature Codes */
-       rc = dasd_eckd_read_features(device);
-       if (rc)
-               goto out_err3;
+       dasd_eckd_read_features(device);
  
        /* Read Device Characteristics */
        rc = dasd_generic_read_dev_chars(device, DASD_ECKD_MAGIC,
@@@ -3241,9 -3242,7 +3242,7 @@@ int dasd_eckd_restore_device(struct das
        }
  
        /* Read Feature Codes */
-       rc = dasd_eckd_read_features(device);
-       if (rc)
-               goto out_err;
+       dasd_eckd_read_features(device);
  
        /* Read Device Characteristics */
        memset(&private->rdc_data, 0, sizeof(private->rdc_data));