Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752254AbcLEJn4 (ORCPT ); Mon, 5 Dec 2016 04:43:56 -0500 Received: from mail-by2nam03on0067.outbound.protection.outlook.com ([104.47.42.67]:34770 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751592AbcLEJnf (ORCPT ); Mon, 5 Dec 2016 04:43:35 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Christian.Koenig@amd.com; Subject: Re: [PATCH] drm/radeon: don't add files at control minor debugfs directory To: Nicolai Stange References: <20161203144700.2307-1-nicstange@gmail.com> <20161205072709.zcoja6eak2sjgd2k@phenom.ffwll.local> <5b8f4c38-c993-90af-5417-5e2e3cc38b58@amd.com> <87pol6ahxr.fsf@gmail.com> CC: Alex Deucher , Daniel Vetter , , From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Mon, 5 Dec 2016 09:48:02 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <87pol6ahxr.fsf@gmail.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [2a02:908:1251:7981:f50a:cb6d:da02:7199] X-ClientProxiedBy: HE1PR02CA0068.eurprd02.prod.outlook.com (10.163.170.36) To BN6PR12MB1298.namprd12.prod.outlook.com (10.168.227.148) X-MS-Office365-Filtering-Correlation-Id: d8fb6eb2-d351-4d88-4a56-08d41ceb74bb X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BN6PR12MB1298; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1298;3:yuV0jSlsT/T9Tcg6tGd0dKfqEl2D57cxBcw3pyYRhDf0P62TaK1ORJFRdpZ+HKp9BlJQMnd0A1vmh7szAhze14CiV2+ceNNH5+vg8WNGcSM5zuYedKtRwnWUWzPuP895cCTusPhYIEkZ59m9/5wwwCyNy7MZ3tcz8ZXjK/HzkQjObv584rAFuTx2pRuxZchTteaESRGdEOyf8yYZCOcoAHEGZDQvbLsDmM7rkZNSTEgL5nKLDFBaGMivHQFVU3boFs82M12bBaRAMBm7piOxFQ==;25:X0tmFRgUJphW5yTgQnpxvViozp3K3iMyH7sIhTXDbOlG2R1zMF+oDoaN974QdJlSQ4YfljWjrZM6QaWFcXZ9Gn4DCVVErt85bxeVqU+v3J4KyzO6YwpS9SwrcQal+8i+J286jubrTzg/SzpRlE2cM27DZU+AjoT9TG3680xOhKW1FT1uPisH0MXcTdaFZ3ghtPB9z72mQGaPbpSeUzHtGcj5pELyeR0Yv3OyazxozeqLcDaKGXN/g0fbT/awrzxxONrZ3ocRlIsQQXPr1wRvWM/60IpgQXPHU8x34LVc4+TM1QsblpD2OoTKP0OsJ8MQ7GBrkulhOBjF+LQ33wfaSdIHuATTaLEZkHqc+ivs1gxawJJ9CLWaUjTQXnOO1NXqADhcB6BisIvStEkjTxOfwicygScK3oZ9YRRZ6LrnH9WIIkPQQ3fD9iA30duOQAfkHuIA20v/Hz5IV/aRozWfBA== X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1298;31:278mjkip816xVtxlVIWXz+ur1w000/SWYeg725ybCLnf34BYwBeEzX+667jt82tJbG1OXAJf7H7NOtpE1/AkAGq/yrG4DP7rOZ1gkvgGnT9gai7g+MrKn56ABkfls7Z0UX/KNX/l78uj0oA5vXI7+craK0LlpAMJTIk0YjYk3Efwwwp0DxM9km3ssjY2ON3D8O3JFZNcTUVHOWU/omxT+mACrvidIaYIrrXW0WE9ZaTYLrjsXwMxNMX/oU189kBS;20:9BYvaJELmj/CFi/0Gpor+hHWf01JHxlKcqc/CSuekJzQjVaGvtgZzYidglEeWDt4iLl0cqjhl7vnknF2sC/TCnKveT8mvd7nav1BZPB/l4wvwjmblfRxjnPiEHPLshD4mRBcaelIhkB9YIj63QQeuFh/0e9QdKDCHAyY1HTaOckffcsnkOe1noNtOXDJqc5c4g90Kn6wPxv7nRGpMAKSoFh3yA9n4uMAONuojIr9sHqcijCdjILEujNyI4cMyNDlQA2N2Sya4tFXcpAkVhEZ67q+HdMbbpm9v7tOiM3pYG0NetaABRLBMZ+EI72dHXnUAblvuG2dCUyvBGulqoNDW7f45vNMgW6JL6ajzdcoKJa8pq0oFlrhoYJ+9TY+UcjjFsWlvReQEU6tHBmO9DUovE8dgkmEPSZ3iA7VZU4rbQvOxBMnDh/60sy+Omp94byTTFw/K+72IeW+OPT3akFV3ADfHQZ73UMDRvK4ZsArhCy59cSMnrLHHuGR5OKb15su X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(6072148);SRVR:BN6PR12MB1298;BCL:0;PCL:0;RULEID:;SRVR:BN6PR12MB1298; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1298;4:INKDgRjRkWIwQamm/R8qd51Ydq0kNBwsuX1/Cd44tb0YYk8eFYk/KoRJxGyTMH4uTZanQQTjmmCHKZLeasLDlKj2p5krmuIJIO+nbMejglrUznV7/MD/hVvTRu9ulAIQvowRuCZrxvDA5vqupzKW/WcvD1GFz14+oca4Kxl6QXVMpvomIEwbE10eHvRZNn2Bwwqq34qcXKCSBceK2v1UG0H5bReylICZvGo+ZBamRHRNhumL5vSHReklgKslVI9n60BAoBRcS5XVpr0Q1sphVTS2ChByqamiz5wT0fa8C8Jqj6d7StqErl3Inxe+/idLE/1l02qr2+1sW5vWoyzkhYDM4wnnUFcfs+Du8oOS348DiA0u+lnDkk6EYAPxgwzrnU1DPfFbtWFtsaKM/WzwtRNqCLKMzT4TL/BzH1lKCZdmARTGmwRlheXNVgSJMXYNjGwPzOj+So4/lFq2LI7KDZvfPUi0ptvUIGD6y5aVaQWdBR+B1ttd8V3iDv0pDmQxqn1vJ9624CfoW79GgajH13QscF2Gcby/wwcfOfn1a7pL20ipWXs/KIFympk11aBfig6MInLgCe6+4wCKm4h7rl1yWo6mKjcj0KI+kgvM3Rn1uAHlqQ0zQa+JK1KSbvYP X-Forefront-PRVS: 0147E151B5 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(24454002)(189002)(199003)(64126003)(42186005)(101416001)(31686004)(106356001)(105586002)(110136003)(92566002)(39840400001)(6916009)(305945005)(39860400001)(5660300001)(1411001)(65826007)(8676002)(7736002)(6666003)(50986999)(76176999)(54356999)(7846002)(2950100002)(65806001)(39060400001)(81156014)(39450400002)(733004)(81166006)(39410400001)(6486002)(68736007)(83506001)(65956001)(229853002)(36756003)(4326007)(47776003)(1706002)(2906002)(39850400001)(38730400001)(6116002)(2870700001)(23676002)(97736004)(4001350100001)(31696002)(93886004)(189998001)(33646002)(50466002)(86362001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR12MB1298;H:[IPv6:2a02:908:1251:7981:f50a:cb6d:da02:7199];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxMjk4OzIzOlBJOVY2K2RjWnNIR1NGU0ZsUG1WbHE0SmZi?= =?utf-8?B?QjdXNU9GdmdWeXowejNnaTdhWWxTTHcxb085Q0VnbnFMR0R1SXJWc2ppUHJT?= =?utf-8?B?SEVwQThESzByWFhycGhSUFhEalhCL00vSGxQcTJIUzRXcUNLbVBtVkNVdHFP?= =?utf-8?B?MWo5SUN6cWU1NnRHQ2ZQV3pRNzRkR2hSOXQwSi9ER2ZsMk12VHFXcWdGVncw?= =?utf-8?B?SWh2VWwya283anJGN2Fnbm1UWDVuOUExdlpWKzl1NnM1VHFJSXp0THgvK3Iy?= =?utf-8?B?bVpFTlBkS0pUQWdPVE1nVEV1cWE3Q2w1YUxxbDRRVnRsT1BWSVJqa1dtWjc1?= =?utf-8?B?Q3JLQjhNTWRNaUdxb3ZGbmtzZFIrOUI1M1hMaTROeS9iaUxMRERQOEFuRkpa?= =?utf-8?B?R2dvYm1RUDZmYm9wczdycC8zT1ducDhGclhNd0xxNmRyL1A4ZU1oZ1IzOW8z?= =?utf-8?B?K2ljK1hrS3ppd1JwdVBQWDkzYTVScVN0eTdkNDIzUHRpQ3FwS00rL3NEVWpo?= =?utf-8?B?d3NCb3N5bDB2LzlkdnB0dG5GdGpaeTRqeWdINGMzVnU3US9FcHAxZDhRMGFE?= =?utf-8?B?UGltZUNkbXJ6N3NYV3ZNK3Z5clZMRUFqaUpIdFJCemRneWxvUk80aEZWYlBs?= =?utf-8?B?V1JzS3A4WE15cVl2OU1BUWltVUsvVlliaTdFL2RIZDJvcHF3azBUaHhFcHVa?= =?utf-8?B?SjZ1RDlqai9xQ3l1cE53dFNuMlBjblk4YXVqcGh4eFNFRE5tb29BU2UzcCt4?= =?utf-8?B?UkFTblU0SnQ0b01jd0ZJa0twalhpQVQxVGRodDNUeGh1MmV0WEJpM0FQTUhY?= =?utf-8?B?RVFnb1FVbmRKNUtnNzU5SmY3d3ZhTTVwdGF2MEppdWYxNGlQQW5qSjZtWjlN?= =?utf-8?B?VDJJRzk1Q3lmVVV2TnRnb1FjVU15YkQwKzliaTljRnI3S1dQR2JoYzlycmJu?= =?utf-8?B?dE14S2JINHZpcTJtZ1RRbC9mYUd2bEkwYlhjNFJNY1ZzZnZHQzlBRThDcmZM?= =?utf-8?B?MGJLV25yUkJvZGlKaVVpY1lDb1pjUnpqQ0M1eWlQeUpHemVHZzhxbnczMytJ?= =?utf-8?B?SDNudGIyeEdoQnBObFNVQ0twUW52Skl2TEZobGpVTFJhN0dOUzl2THQrOU90?= =?utf-8?B?QWU3NEZiS0dUa3cxK2VQejRDU3dFRnJLVmFmNHhoZzlXQkJJZS9tMkgvNmVU?= =?utf-8?B?VUhibXFqM3AwZE9xM1ZjTnNWZ0d1bTNjOWNKa3BJVGxidGR5bU9qZE9aNEFy?= =?utf-8?B?RDdObTMxQkNrb1d6Z2REeWtMWUJJR1ZOeUtSaDhtcmNWSkNFK0NQaTNwS1Er?= =?utf-8?B?UjBmcEJjbTY4ZURRSTM0SjJnT3l0d2tlVEZ3Rm1paXVwY0NPUXBUK1M5SVVz?= =?utf-8?B?UlFyY2VNaVd0RVNXR2NPVFJPeVFDc2RFSFRIcVYrMHNKSFhoM3ROZUdhVExN?= =?utf-8?B?Rlk4TDBnbCtveFluenR0ejdiQUNrUitGMDBhV3Bacm1vTjVKUjBkTUtxZmcr?= =?utf-8?B?OTJ1TlFaS3BNR3NRdUNTRS9vbVdtNVIzRDd5ZU1Xa0YyQWU2bGJFMmJPYWxt?= =?utf-8?B?RHJoU1Vac0pSRmVEY2ZPd3NmWnc1Z1pxVXU3RkNnMkZNeWVCZUNIZG8wK2ZM?= =?utf-8?B?blZEVjVKYXByNlJpRDhodGVCT3drelBaK1lLTm1LN1VuSHoxYnV4TkdIZlhD?= =?utf-8?B?WWNXaW1QSnhGSllYT3k5b0pRY2Z4ZzRzSHVqRmFxTHRjNTVKTDRmNW1MbldL?= =?utf-8?B?VjBzZ2F6cU4zVTlYVllQY2U3dnNqWDdPVGhwRitYdkRHWHJvZlBkN3dqRCtG?= =?utf-8?B?eFdPbEJ4S1RwVHFiZGVCUy9UZWhYZk5qc3R4UVArTkNMQXQzNXdUdVRjQWhr?= =?utf-8?B?SDNwTVN5NGxIUXRQVisyWnVzYkMxS2VPYm1mWmxOdSt0SlB5QWtjYUtaZlVz?= =?utf-8?B?c3B5eEkvakt3PT0=?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1298;6:SBXaZ6KnH04QHP46lwUmirs20sblAxMrUCP2F5uMwO3h5p+PRQoLikbpDyAxCitiNUyskdL1SFV/0Mu0LplMGYiHsuxVIL/X9pkcvSXteXVjDutTQAGIHlR+YqzQydWtmvKCQDigj/94Y/MfYQpRu6NV45KC+0SLs9zkojFuUWyYOtsEGdJxDyIwB7UyYIZtzIEPhZuqqbOT10V+tgSHAx74qRi9Yb4x/hv5jlT8pfEAOvWomAlCXPvpyi/P7myC6THl+aiyPutw6P57Tip8dbb9SpQLEr1r9Xgd0CWHucP0NcDdOsBfVcraWtBoOJyGD1En2Xmloy8L4tO3ctk6hwxfxqnZ/M8AMSygi7jSFxOGNGWqs5ahctDNLiu/r0j2NKmQG0PV2ar3zPr0EtzTjf69iSoOcwnTSMDvHJqN+Hn9qTM9Z/DHMqK1avaKs6Sy+j+O+wiPvPDja+EhdR8QE3oxgMfLLtcwoHzgOl3PN+M=;5:6mL0w85MSpVloVmjLed4W0OmQS0OGiJblE2mXKr3XUTow/l8IxBgpEjVfO62ahEhyhul5HGmvphgpCXjCHNFpk30Tmzp+zwSxC3qgUzYGpuFZ6V/p3vzAPPjb7U8OVb6IlHpRSiuIhoBEfNcvREPgw==;24:q3SOKWmSepXY3rV+xDKCcsyJOOzBKtZhoW+yJksKxab4YxLs8wleYEAXcvRvEWiAWRa5M4HZS05ITJ+JD2AUXCP9pBCNwCFU4Bp9FPSyaAs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1298;7:9Q6k5UIpAls/st1VHK3NEaUY+igr96u02r4eFXF2kEPwD48qGEpgqkh8UKROj/eSGcDPdG9sby2q5x6dr0RLj8rWXagf8V3Kfo5hAJqulkGSscYDXBxgIpSBZE4e3F96z5Fx9KIAFIfvTGUHH0XRv7JbA6oM9h/E14TwfV9jwFBZJufRGaFN6Ywatp4Ccz/S6olUuXKP6ssonnx8f96ipXYuJbddcfv0DMEIe/0SWtQh5EZxM+2Muks7A/cxhjyOdO5/o4c1aYOtznXXDRDrDwTo18e4tlZ4RqRyqxsvcthaS5/XGNk3Zm+yBwM95tXZvp6WuAz8ywQj4H9fcttrYEa7N8wkaHNBJ916Irj79ZV7gKaFPmwqD5sXUOoZf18LQSQ3fnRrBMnfpzIGcE5Uf60eFh4UeFckYpyji5kibtqSItUr4po/slpGEim53a38yZb38KyyS3iFYGWnRsUF8w==;20:zMAVc8fAHSBA2hblpbtNy6yVokJ17E4Qm47TRtG5agb1tXpOIhGeOv81Bllli+v6z1x0ZtQXfeoc6kie/4axbosPXsel/E8+pbzRE/bbv5LAltEJusNqa3s7kJJukaX9aq35NUNo7bTVNU4ndGcpI/Kjn7kgZdyrk4wsvyGKmUeJlmNmHbAyMNoO47fHOxQNZK1l4oof2J4DJ03fKLInX49BN02UUzvdSPi2c2vrRiqGr3mPNllRZmY2fUyWGj7R X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2016 08:48:15.3724 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1298 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5559 Lines: 117 Am 05.12.2016 um 09:39 schrieb Nicolai Stange: > Christian König writes: > >> Am 05.12.2016 um 08:27 schrieb Daniel Vetter: >>> On Sat, Dec 03, 2016 at 03:47:00PM +0100, Nicolai Stange wrote: >>>> Since commit 8a357d10043c ("drm: Nerf DRM_CONTROL nodes"), a >>>> struct drm_device's ->control member is always NULL. >>>> >>>> In the case of CONFIG_DEBUG_FS=y, radeon_debugfs_add_files() accesses >>>> ->control->debugfs_root though. This results in the following Oops: >>>> >>>> BUG: unable to handle kernel NULL pointer dereference at 0000000000000018 >>>> IP: radeon_debugfs_add_files+0x90/0x100 [radeon] >>>> PGD 0 >>>> Oops: 0000 [#1] SMP >>>> [...] >>>> Call Trace: >>>> ? work_on_cpu+0xb0/0xb0 >>>> radeon_fence_driver_init+0x120/0x150 [radeon] >>>> si_init+0x122/0xd50 [radeon] >>>> ? _raw_spin_unlock_irq+0x2c/0x40 >>>> ? device_pm_check_callbacks+0xb3/0xc0 >>>> radeon_device_init+0x958/0xda0 [radeon] >>>> radeon_driver_load_kms+0x9a/0x210 [radeon] >>>> drm_dev_register+0xa9/0xd0 [drm] >>>> drm_get_pci_dev+0x9c/0x1e0 [drm] >>>> radeon_pci_probe+0xb8/0xe0 [radeon] >>>> [...] >>>> >>>> Fix this by omitting the drm_debugfs_create_files() call for the >>>> control minor debugfs directory which is now non-existent anyway. >>>> >>>> Fixes: 8a357d10043c ("drm: Nerf DRM_CONTROL nodes") >>>> Signed-off-by: Nicolai Stange >>> Applied to drm-misc with Dave's irc ack, thanks for your patch. >> If it's still worth it the patch is Reviewed-by: Christian König >> . >> >> On the other hand when ->control is always NULL, why do we still have >> ->control anyway? > Yes, I was wondering about that, too. > > Quoting from 8a357d10043c ("drm: Nerf DRM_CONTROL nodes"): > > Since I don't like dead uabi, let's remove it. But since this would be > a really big change I think it's better to start out small by simply > not registering anything. We can garbage-collect the dead code later > on, once we're sure it's really not used anywhere. > > I'd too prefer compile time errors by purging ->control here. Daniel? Seconded. > > >> And BTW: Please double check the other drivers as well. > # git grep '\->control' -- drivers/gpu/ > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c: adev->ddev->control->debugfs_root, > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c: adev->ddev->control); > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c: adev->ddev->control); > > Oops. Yeah, that's what I expected as well but Daniel said it would only affect qxl. > > drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.c: ib_packet->control = (1 << 23) | (1 << 31) | > drivers/gpu/drm/drm_drv.c: return &dev->control; > > That's drm_minor_get_slot(dev, type), but grepping for DRM_MINOR_CONTROL > doesn't yield anything -> dead code. > > drivers/gpu/drm/gma500/psb_intel_sdvo.c: switch (sdvo->controlled_output) { > drivers/gpu/drm/gma500/psb_intel_sdvo.c: psb_intel_sdvo->controlled_output |= SDVO_OUTPUT_TMDS0; > drivers/gpu/drm/gma500/psb_intel_sdvo.c: psb_intel_sdvo->controlled_output |= SDVO_OUTPUT_TMDS1; > drivers/gpu/drm/gma500/psb_intel_sdvo.c: psb_intel_sdvo->controlled_output |= type; > drivers/gpu/drm/gma500/psb_intel_sdvo.c: psb_intel_sdvo->controlled_output |= SDVO_OUTPUT_RGB0; > drivers/gpu/drm/gma500/psb_intel_sdvo.c: psb_intel_sdvo->controlled_output |= SDVO_OUTPUT_RGB1; > drivers/gpu/drm/gma500/psb_intel_sdvo.c: psb_intel_sdvo->controlled_output |= SDVO_OUTPUT_LVDS0; > drivers/gpu/drm/gma500/psb_intel_sdvo.c: psb_intel_sdvo->controlled_output |= SDVO_OUTPUT_LVDS1; > drivers/gpu/drm/gma500/psb_intel_sdvo.c: psb_intel_sdvo->controlled_output = 0; > drivers/gpu/drm/i915/intel_sdvo.c: switch (sdvo->controlled_output) { > drivers/gpu/drm/i915/intel_sdvo.c: intel_sdvo->controlled_output |= SDVO_OUTPUT_TMDS0; > drivers/gpu/drm/i915/intel_sdvo.c: intel_sdvo->controlled_output |= SDVO_OUTPUT_TMDS1; > drivers/gpu/drm/i915/intel_sdvo.c: intel_sdvo->controlled_output |= type; > drivers/gpu/drm/i915/intel_sdvo.c: intel_sdvo->controlled_output |= SDVO_OUTPUT_RGB0; > drivers/gpu/drm/i915/intel_sdvo.c: intel_sdvo->controlled_output |= SDVO_OUTPUT_RGB1; > drivers/gpu/drm/i915/intel_sdvo.c: intel_sdvo->controlled_output |= SDVO_OUTPUT_LVDS0; > drivers/gpu/drm/i915/intel_sdvo.c: intel_sdvo->controlled_output |= SDVO_OUTPUT_LVDS1; > drivers/gpu/drm/i915/intel_sdvo.c: intel_sdvo->controlled_output = 0; > drivers/gpu/drm/msm/msm_debugfs.c: ret = late_init_minor(dev->control); > > Not an oops but dead code. > > drivers/gpu/drm/qxl/qxl_debugfs.c: qdev->ddev->control->debugfs_root, > drivers/gpu/drm/qxl/qxl_debugfs.c: qdev->ddev->control); > drivers/gpu/drm/qxl/qxl_debugfs.c: qdev->ddev->control); > > Oops. > > > I'll send compile-only tested patches either tonight or tomorrow. Shall > they cover the oopses only or the dead code as well? Please start with the ops, cause we certainly will get complains about that rather fast. Regards, Christian. > > > Thanks, > > Nicolai