From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753348AbbCaVs0 (ORCPT ); Tue, 31 Mar 2015 17:48:26 -0400 Received: from mail-wg0-f43.google.com ([74.125.82.43]:32984 "EHLO mail-wg0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751295AbbCaVsW (ORCPT ); Tue, 31 Mar 2015 17:48:22 -0400 Date: Tue, 31 Mar 2015 23:48:15 +0200 From: Richard Cochran To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Amir Vadai , Ariel Elior , Arnd Bergmann , Baolin Wang , Ben Hutchings , Bruce Allan , Carolyn Wyborny , Chris Metcalf , David Miller , Frank Li , Giuseppe Cavallaro , Jacob Keller , Jeff Kirsher , John Stultz , Luwei Zhou , Matthew Vick , Michael Chan , Prashant Sreedharan , Rayagond K , Shradha Shah , Solarflare linux maintainers , Sonic Zhang , Stefan =?iso-8859-1?Q?S=F8rensen?= , Thomas Gleixner , Tom Lendacky Subject: Re: [PATCH net-next V3 10/23] ptp: e1000e: convert to the 64 bit get/set time methods. Message-ID: <20150331214815.GA9233@localhost.localdomain> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Mar 29, 2015 at 11:12:00PM +0200, Richard Cochran wrote: > @@ -171,11 +171,11 @@ static void e1000e_systim_overflow_work(struct work_struct *work) > struct e1000_adapter *adapter = container_of(work, struct e1000_adapter, > systim_overflow_work.work); > struct e1000_hw *hw = &adapter->hw; > - struct timespec ts; > + struct timespec64 ts; > > - adapter->ptp_clock_info.gettime(&adapter->ptp_clock_info, &ts); > + adapter->ptp_clock_info.gettime64(&adapter->ptp_clock_info, &ts); > > - e_dbg("SYSTIM overflow check at %ld.%09lu\n", ts.tv_sec, ts.tv_nsec); > + e_dbg("SYSTIM overflow check at %lld.%09lu\n", ts.tv_sec, ts.tv_nsec); On a 64 bit build, this triggers a new warning. drivers/net/ethernet/intel/e1000e/ptp.c: In function ‘e1000e_systim_overflow_work’: drivers/net/ethernet/intel/e1000e/ptp.c:176:2: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 4 has type ‘__kernel_time_t’ [-Wformat] On 32 bit, timespec64.tv_sec is of type 'time64_t' or '__s64'. On 64 bit, timespec64.tv_sec is of type '__kernel_time_t' or '__kernel_long_t' or 'long'. How are we supposed to print that field? With a cast? Thanks, Richard From mboxrd@z Thu Jan 1 00:00:00 1970 From: Richard Cochran Subject: Re: [PATCH net-next V3 10/23] ptp: e1000e: convert to the 64 bit get/set time methods. Date: Tue, 31 Mar 2015 23:48:15 +0200 Message-ID: <20150331214815.GA9233@localhost.localdomain> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: linux-kernel@vger.kernel.org, Amir Vadai , Ariel Elior , Arnd Bergmann , Baolin Wang , Ben Hutchings , Bruce Allan , Carolyn Wyborny , Chris Metcalf , David Miller , Frank Li , Giuseppe Cavallaro , Jacob Keller , Jeff Kirsher , John Stultz , Luwei Zhou , Matthew Vick , Michael Chan , Prashant Sreedharan , Rayagond K , Shradha Shah , Solarflare linux maintainers , Sonic Zhang To: netdev@vger.kernel.org Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On Sun, Mar 29, 2015 at 11:12:00PM +0200, Richard Cochran wrote: > @@ -171,11 +171,11 @@ static void e1000e_systim_overflow_work(struct = work_struct *work) > struct e1000_adapter *adapter =3D container_of(work, struct e1000_a= dapter, > systim_overflow_work.work); > struct e1000_hw *hw =3D &adapter->hw; > - struct timespec ts; > + struct timespec64 ts; > =20 > - adapter->ptp_clock_info.gettime(&adapter->ptp_clock_info, &ts); > + adapter->ptp_clock_info.gettime64(&adapter->ptp_clock_info, &ts); > =20 > - e_dbg("SYSTIM overflow check at %ld.%09lu\n", ts.tv_sec, ts.tv_nsec= ); > + e_dbg("SYSTIM overflow check at %lld.%09lu\n", ts.tv_sec, ts.tv_nse= c); On a 64 bit build, this triggers a new warning. drivers/net/ethernet/intel/e1000e/ptp.c: In function =E2=80=98e1000e_sy= stim_overflow_work=E2=80=99: drivers/net/ethernet/intel/e1000e/ptp.c:176:2: warning: format =E2=80=98= %lld=E2=80=99 expects argument of type =E2=80=98long long int=E2=80=99,= but argument 4 has type =E2=80=98__kernel_time_t=E2=80=99 [-Wformat] On 32 bit, timespec64.tv_sec is of type 'time64_t' or '__s64'. On 64 bit, timespec64.tv_sec is of type '__kernel_time_t' or '__kernel_long_t' or 'long'. How are we supposed to print that field? With a cast? Thanks, Richard